専門家は、タートル アニメーションが望ましくない速度で実行される状況によく遭遇します。 Tracer() メソッドとその中でのさまざまな数値の実験は不十分に思えるかもしれませんが、シンプルで効果的な解決策は別の場所にあります。
Turtle を使用して通常のアニメーション速度を実現するには、while True: またはsleep() はイベント駆動型環境内で構築されます。これらのテクニックはタートルにとって最適ではありません。代わりに、Turtle タイマー イベントを利用すると、より効率的なアプローチを提供できます。
次のコードは、タイマーベースの風車アニメーションを実装する方法を示しています。
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()
ontimer() メソッドを利用すると、各アニメーション フレーム間の時間間隔をミリ秒単位で表す 2 番目の引数を通じてアニメーション速度を正確に制御できます。この値を調整すると、速度を希望のレベルに微調整でき、スムーズで視覚的に魅力的なアニメーションを実現できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3