2
如何使此代碼正常工作:安裝pyglet並將"assassin1.png"
和"assassin2.png"
更改爲存儲在將此代碼保存到文件的目錄中的圖像名稱。在pyglet中定期更改圖像(精靈?)
import pyglet
class Assassin(pyglet.sprite.Sprite):
def __init__(self, batch):
pyglet.sprite.Sprite.__init__(self, pyglet.resource.image("assassin1.png"))
self.x = 50
self.y = 30
def forward_movement(self):
pass # How do I continously change between 'assassin1.png' and 'assassin2.png'?
class Game(pyglet.window.Window):
def __init__(self):
pyglet.window.Window.__init__(self, width = 315, height = 220)
self.batch_draw = pyglet.graphics.Batch()
self.player = Assassin(batch = self.batch_draw)
self.fps_display = pyglet.clock.ClockDisplay()
self.keys_held = []
self.schedule = pyglet.clock.schedule_interval(func = self.update, interval = 1/60.)
def on_draw(self):
self.clear()
self.fps_display.draw()
self.batch_draw.draw()
self.player.draw()
def on_key_press(self, symbol, modifiers):
self.keys_held.append(symbol)
if symbol == pyglet.window.key.RIGHT:
self.player.forward_movement()
print "The 'RIGHT' key was pressed"
def on_key_release(self, symbol, modifiers):
self.keys_held.pop(self.keys_held.index(symbol))
def update(self, interval):
if pyglet.window.key.RIGHT in self.keys_held:
self.player.x += 50 * interval
if __name__ == "__main__":
window = Game()
pyglet.app.run()
說明:這一代碼創建一個黑色背景屏幕,其中顯示幀率和 圖像「assassin1.png」在位置(50,30)被顯示。只要按住正確的方向按鈕,圖像就會向右移動。
目標:我想實現,每當右方向按鈕被保持並且該圖像被移動時,assassin1.png
圖像週期性地改變與第二圖像assassin2.png
(每0.25秒左右)。這是爲了創造圖像走路的模糊幻覺。
我該如何實現這個目標?
我已經在刺客類中創建了一個空的forward_movement()
方法,它似乎是一個合適的位置來讓代碼實現我的目標。但是如果你想把代碼放在另一個地方,那也可以。