Я хотел бы знать, как я могу изменить анимацию спрайта, сохраняя при этом ту же переменную.Моя концепция того, как это может работать, заключается в создании отдельной переменной из анимации и изменении этой переменной с помощью различных переменных анимации.Вот мой текущий код:
import pyglet
import os
from pyglet.window import key, mouse
window = pyglet.window.Window(resizable=False,width=1280,height=720)
### Character file init start
global crabboLeft, crabboRight, crabboIdle, crabbo
crabboLeft = pyglet.image.load_animation('images/chr/crabbo_left.gif')
crabboRight = pyglet.image.load_animation('images/chr/crabbo_right.gif')
crabboIdle = pyglet.image.load_animation('images/chr/crabbo_idle.gif')
crabbo = pyglet.sprite.Sprite(crabboIdle)
### Character file init end
### Movement assignment start
crabbo.dx = 0
### Movement assignment end
cur_event = None
### Drawing to the screen
@window.event
def on_draw():
window.clear()
if cur_event == None:
crabbo.draw()
@window.event
def update(dt):
if cur_event == None and crabbo.dx == -200:
crabbo.x += crabbo.dx * dt
elif cur_event == None and crabbo.dx == 200:
crabbo.x += crabbo.dx * dt
pyglet.clock.schedule_interval(update, 1/60.0)
@window.event
def on_key_press(symbol, modifiers):
global crabbo
if symbol == key.LEFT and crabbo.dx == 200:
crabbo.dx = 0
crabbo = pyglet.sprite.Sprite(crabboIdle)
elif symbol == key.RIGHT and crabbo.dx == -200:
crabbo.dx = 0
crabbo = pyglet.sprite.Sprite(crabboIdle)
elif symbol == key.LEFT:
crabbo.dx = -200
crabbo = pyglet.sprite.Sprite(crabboLeft)
elif symbol == key.RIGHT:
crabbo.dx = 200
crabbo = pyglet.sprite.Sprite(crabboRight)
pyglet.app.run()