2017-11-19 3 views

答えて

0

turtle.Turtle()を使用すると、多くのカメを作成し、それを1つずつ使用して小さな動きをさせることができます。タートルズはほぼ同時に動きます。

import turtle 

t1 = turtle.Turtle() 
t2 = turtle.Turtle() 

for x in range(36): 
    # first turtle makes small move 
    t1.left(10) 
    t1.forward(10) 
    # second turtle makes small move 
    t2.right(10) 
    t2.forward(10) 

turtle.done() 

あなたはすべての時間を移動(と同時に、他のことを行う)したい場合は
、あなたは小さな動きを作るためにontimer()を使用することができます。

import turtle 

def move_t1(): 
    # first turtle makes small move 
    t1.left(10) 
    t1.forward(10) 

    # repeat after 100ms 
    turtle.ontimer(move_t1, 100) 

def move_t2(): 
    # second turtle makes small move 
    t2.right(10) 
    t2.forward(10) 

    # repeat after 100ms 
    turtle.ontimer(move_t2, 100) 

t1 = turtle.Turtle() 
t2 = turtle.Turtle() 

move_t1() # first turtle makes first move 
move_t2() # second turtle makes first move 

turtle.done() 
+0

よく、問題はそれらのためのクラスを作る必要があります。私は蛾のためのクラスを作り、光のために光の位置を追跡する必要があります。だから、蛾が光の半径に達するたびに死ぬ。だから、どうすればいいの?私は強制的に次のような機能を持っている必要があります: メソッドgetPosition(自己)•コンストラクタのinit(自己、のinitialPosition) メソッドmove•(自己、newPosition) メソッドmoveToLight•(自己、lightPosition) を – Reticent

+0

私は第3の例を持っていますGitHub [main-3.py](https://github.com/furas/python-examples/blob/master/turtle/two-turtles-and-ontimer/main-3.py)にあります。それはカメのためのクラスを使用します。マウスの左ボタンを使用して画面にさらにカメを追加し、右マウスボタンを使用してすべてのカメを停止/開始することができます。 – furas

+0

あなたのクラスは私のクラスに似ているはずです。 '__init__'は似ていますが、' getPosition'は簡単でなければなりません。 't.position()'を使うべきです。 'move()'と 'moveToLight'については同様でなければならず、' ontimer'を使ってカメを動かすか、目的地の位置を変数に保ち、この変数を使ってカメを移動させるべきです。 – furas

関連する問題