Profis stoßen häufig auf Situationen, in denen ihre Turtle-Animationen mit einer unerwünschten Geschwindigkeit ausgeführt werden. Während die Methode „tracer()“ und das Experimentieren mit verschiedenen Zahlen darin unzureichend erscheinen mögen, gibt es anderswo eine einfache, aber effektive Lösung.
Um mit Turtle eine normale Animationsgeschwindigkeit zu erreichen, ist es wichtig, sich nicht auf while True: oder zu verlassen sleep() wird in einer ereignisgesteuerten Umgebung erstellt. Diese Techniken sind für Schildkröten nicht optimal. Stattdessen kann die Verwendung eines Turtle-Timer-Ereignisses einen effizienteren Ansatz bieten.
Der folgende Code zeigt, wie eine timerbasierte Windmühlenanimation implementiert wird:
from turtle import Screen, Turtle
def rectangle(t):
t.forward(50)
t.left(90)
t.backward(5)
t.pendown()
for _ in range(2):
t.forward(10)
t.right(90)
t.forward(120)
t.right(90)
t.penup()
def windmill(t):
for _ in range(4):
t.penup()
rectangle(t)
t.goto(0, 0)
screen = Screen()
screen.tracer(0)
turtle = Turtle()
turtle.setheading(90)
def rotate():
turtle.clear()
windmill(turtle)
screen.update()
turtle.left(1)
screen.ontimer(rotate, 40) # adjust speed via second argument
rotate()
screen.mainloop()
Durch die Verwendung der ontimer()-Methode haben Sie eine genaue Kontrolle über die Animationsgeschwindigkeit durch das zweite Argument, das das Zeitintervall in Millisekunden zwischen den einzelnen Animationsbildern darstellt. Durch Anpassen dieses Werts können Sie die Geschwindigkeit auf das gewünschte Niveau einstellen und so eine flüssige und optisch ansprechende Animation erzielen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3