Pyglet меняет анимацию на одну переменную - python - PullRequest
0 голосов
/ 28 декабря 2018

Я хотел бы знать, как я могу изменить анимацию спрайта, сохраняя при этом ту же переменную.Моя концепция того, как это может работать, заключается в создании отдельной переменной из анимации и изменении этой переменной с помощью различных переменных анимации.Вот мой текущий код:

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()
...