1
最近、私は最近取り組んでいる作品です。このプロジェクトのタスクは、三角形の頂点として3つのシンボルを作成することです。シンボルは常に等速度で互いに向かって移動する(すなわち、1→2,2→3,3→1)。シンボルが同時に移動を開始、最終的な数字は、ここに私のコードです。このタートルモジュールでマルチスレッドを使用する方法
のように見える必要があります。 3つのメソッドを同時に呼び出すためにマルチスレッドを使用していますが、プログラムは動作していないようです。メソッドは別々に実行されていますが、これは起こってはいけません。
import turtle
import time
import threading
class TurObj:
def __init__(self, x, y, color, speed):
self.t = turtle.Pen()
self.t.ht()
self.t.shape('circle')
self.t.fillcolor(color)
self.t.speed(speed)
self.t.penup()
self.t.goto(x, y)
self.t.pendown()
self.t.st()
def get_loc(self):
cor = [self.t.xcor(), self.t.ycor()]
return cor
def move_to(self, n):
# self.t.setx(n.get_loc().__getitem__(0))
# self.t.sety(n.get_loc().__getitem__(1))
self.t.goto(n.get_loc().__getitem__(0), n.get_loc().__getitem__(1))
t1 = TurObj(300, 200, 'red', 5)
t2 = TurObj(-300, 200, 'yellow', 5)
t3 = TurObj(0, -200, 'blue', 5)
p1 = threading.Thread(target=t1.move_to(t2))
p2 = threading.Thread(target=t2.move_to(t3))
p3 = threading.Thread(target=t3.move_to(t1))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
time.sleep(3)
すべてのヘルプは素晴らしいことだ...