Я чувствую, что и ваше решение, и решение @Prune являются необдуманными. Используя time.sleep()
, вы блокируете другие события черепахи. Если это в конечном итоге предназначено как wait изображение, то последнее, что вы хотите сделать, это заблокировать то, что вы ожидаете. Это действительно должно вместо этого быть сделано с событиями таймера:
from turtle import Screen, Turtle
def walk():
screen.onkeypress(None, "w") # disable handler in handler
def stop_walk():
zelda.shape("image_2.gif")
screen.onkeypress(walk, "w") # restore event handler
zelda.shape("image_1.gif")
screen.ontimer(stop_walk, 200) # in the future, in milliseconds
screen = Screen()
# Registers Gifs
screen.register_shape("image_1.gif")
screen.register_shape("image_2.gif")
zelda = Turtle()
zelda.penup()
screen.onkeypress(walk, "w")
screen.listen()
screen.mainloop()
Это позволит другим событиям черепахи продолжаться в течение периода ожидания.