専門家は、タートル アニメーションが望ましくない速度で実行される状況によく遭遇します。 Tracer() メソッドとその中でのさまざまな数値の実験は不十分に見えるかもしれませんが、シンプルかつ効果的な解決策は別の場所にあります。
Turtle を使用して通常のアニメーション速度を実現するには、while True: またはsleep() はイベント駆動型環境内で構築されます。これらのテクニックはタートルにとって最適ではありません。代わりに、Turtle タイマー イベントを利用すると、より効率的なアプローチを提供できます。
次のコードは、タイマーベースの風車アニメーションを実装する方法を示しています。
<code class="python">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()</code>
ontimer() メソッドを利用するでは、各アニメーション フレーム間の時間間隔をミリ秒単位で表す 2 番目の引数を使用して、アニメーションの速度を正確に制御できます。この値を調整すると、速度を希望のレベルに微調整でき、スムーズで視覚的に魅力的なアニメーションを実現できます。
以上がPython でタートル アニメーションの速度を最適化する方法: True と Sleep() の間に ontimer() が切り捨てられるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。