所以...我几乎是海龟模块的初学者,我想同时移动所有海龟,但可能因为它们永远不会停止移动,我不能移动超过二,我该怎么做才能改善这一点? 这里是代码:(我确实计划在问题解决后制作更多"颜色")
from turtle import Turtle, Screen
wn = Screen()
wn.bgcolor('black')
speed = 4
def game():
def red(coordred):
redg = Turtle()
redg.hideturtle()
redg.shape('circle')
redg.color('red')
redg.penup()
redg.shapesize(2.5, 2.5, 2.5)
redg.setheading(270)
redg.goto(-280, 320 + coordred * 50)
redg.showturtle()
def movred():
redg.forward(speed)
wn.ontimer(movred, 1)
movred()
def green(coordgreen):
greeng = Turtle()
greeng.hideturtle()
greeng.shape('circle')
greeng.color('green')
greeng.penup()
greeng.shapesize(2.5, 2.5, 2.5)
greeng.setheading(270)
greeng.goto(-100, 320 + coordgreen * 50)
greeng.showturtle()
def movgreen():
greeng.forward(speed)
wn.ontimer(movgreen, 1)
movgreen()
red(0)
green(1)
green(2)
game()
wn.mainloop()
答案 0 :(得分:0)
使用while True
的典型方式确实有效:
from turtle import Turtle, Screen
wn = Screen()
wn.bgcolor('black')
speed = 4
turtles = [('red', 270),
('blue', 260),
('green', 250),
('yellow', 240),
]
def game():
myTurtles = []
for (color, heading) in turtles:
t = Turtle()
t.shape('circle')
t.color(color)
t.shapesize(2.5, 2.5, 2.5)
t.setheading(heading)
t.showturtle()
myTurtles.append(t)
while True:
for t in myTurtles:
t.forward(speed)
game()
wn.mainloop()
如果增加开始时间,您的代码也会起作用。
wn.ontimer(movgreen, 20)
将适用于3只乌龟。您需要更多时间来处理更多对象。