[英]How to display specific gif based on key press event using Pyglet?
到目前為止我得到的代碼
import pyglet
from pyglet.window import key
animation = pyglet.image.load_animation('/home/arctic/Downloads/work/gif/ErrorToSurprised.gif')
animSprite = pyglet.sprite.Sprite(animation)
w = animSprite.width
h = animSprite.height
window = pyglet.window.Window(width=w, height=h, resizable=True)
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.A:
animation = pyglet.image.load_animation('image1.gif')
elif symbol == key.B:
animation = pyglet.image.load_animation('image2.gif')
elif symbol == key.ENTER:
print("Enter Key Was Pressed")
@window.event
def on_draw():
window.clear()
pyglet.app.run()
這會產生一個錯誤,我認為我在 elif 符號 == 鍵下正確加載了 gif。 此 function 顯示 window 默認 gif。 然后聽一個按鍵,根據按鍵顯示一定的gif
這里有兩個問題:
on_draw
中在屏幕上繪制任何內容,因此不會出現任何內容。 您需要添加animSprite.draw()
。animation
變量中,並且什么都不做。 您必須將animSprite.image
屬性更改為新的 animation。這是包含這兩項更改的代碼版本。
import pyglet
from pyglet.window import key
initial_animation = pyglet.image.load_animation(
"/home/arctic/Downloads/work/gif/ErrorToSurprised.gif"
)
animation_1 = pyglet.image.load_animation("image1.gif")
animation_2 = pyglet.image.load_animation("image2.gif")
animSprite = pyglet.sprite.Sprite(initial_animation)
w = animSprite.width
h = animSprite.height
window = pyglet.window.Window(width=w, height=h, resizable=True)
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.A:
animSprite.image = animation_1
elif symbol == key.B:
animSprite.image = animation_2
elif symbol == key.ENTER:
print("Enter Key Was Pressed")
@window.event
def on_draw():
window.clear()
animSprite.draw()
pyglet.app.run()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.