ホームページ >バックエンド開発 >Python チュートリアル >Python でカメのアニメーションを遅くする方法: `while True:` を `screen.ontimer()` に置き換えますか?

Python でカメのアニメーションを遅くする方法: `while True:` を `screen.ontimer()` に置き換えますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-29 13:18:02596ブラウズ

How to Slow Down Your Turtle Animation in Python: Replacing `while True:` with `screen.ontimer()`?

Python でタートル アニメーションの速度を制御する方法

Python の Turtle ライブラリでは、アニメーションの速度が速すぎると認識されることがよくあります。この記事ではこの問題に対処し、アニメーション速度をより管理しやすいペースに調整する改訂されたコード スニペットを提供します。

提供されたコードは、tracer() メソッドを使用して自動画面更新をオフにし、更新を手動で制御できるようにします。レート。ただし、定数アニメーションに while True: ループが使用されているため、高速に実行される可能性があります。

これに対処するために、修正されたコードでは while True: を screen.ontimer() イベント関数に置き換えています。この関数は、設定可能な遅延 (ミリ秒単位) を指定して、画面を更新してアニメーションを進める繰り返しイベントをスケジュールします。

更新されたコードは次のとおりです。

<code class="python">import 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()</code>

2 番目の引数を調整することにより、 (ミリ秒単位) ontimer() を使用すると、アニメーションの速度を変更できます。値を小さくするとアニメーションが遅くなり、値を大きくするとアニメーションが速くなります。

以上がPython でカメのアニメーションを遅くする方法: `while True:` を `screen.ontimer()` に置き換えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。