Я пишу свое первое приложение pyglet, чтобы визуализировать некоторые вычисления, которые делает другой скрипт. К сожалению, я застрял и не могу понять, куда идти дальше.
Я пытаюсь переместить спрайт из его положения в другое положение с помощью цикла for, поэтому в конце каждого цикла он меняет положение спрайта относительно старого положения на определенное расстояние, рассчитанное циклом.
Это упрощенная версия кода, который я пишу (надеюсь, это поможет другим с похожей проблемой, а затем скопирует мой собственный конкретный проект).
@window.event
def on_draw():
window.clear()
batch.draw()
def update(yd):
Ball.y += yd
distance = [2,1,3,-2,-3,2,4,-5,1,2,3,-4,3,5,2,-2,3,2,3,-2,]
### test update in loop ###
for i in distance:
time.sleep(0.1)
update(i)
### Run app ##
pyglet.app.run()
Я не хочу использовать pyglet.clock.schedule_interval(update())
, потому что расчет цикла может занять больше времени, чем clock.schudule
, движение не будет плавным, но это нормально.
У меня проблема в том, что ничего не происходит, пока цикл не завершится, только после того, как python пройдёт цикл, он вызывает pyglet.app.run()
, но если я вызову pyglet.app.run()
перед циклом, он запустит цикл только после того, как я закрою окна pyglet.
on_draw
неоднократно вызывается самим pyglet, когда основной цикл был запущен сapp.run()
. - person sloth   schedule 11.06.2014