在Python中,如何同时执行两个Turtle命令?

时间:2016-12-23 11:30:37

标签: python turtle-graphics

就像两只海龟一下子移动一样。例如,我导入两只乌龟,然后尝试让它们彼此并排前进。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

bob = turtle.Turtle()
john = turtle.Turtle()

def move_turtles(ammount):
    for i in range(ammount // 10):
        bob.forward(10)
        john.forward(10)

move_turtles(100)

虽然你可以使用类似的东西,但是没有办法同时移动它们。它将海龟每个移动10点,因此它给人的印象是它们在一起移动,但它们实际上是通过小小的移动而单独移动的。它重复操作(ammount // 10)次,并在每次迭代中移动10次,所以如果你将50作为输入,它将移动5次10点,结果为50.然后你可以自定义要移动的函数通过一点乌龟,所以他们不重叠,等等。

答案 1 :(得分:0)

你可以使用计时器事件同时独立移动多只海龟 - 你甚至可以让它们在时间和空间上以不同的速度移动:

import turtle

turtle.setworldcoordinates(0, -100, 100, 100)

bob = turtle.Turtle(shape="turtle")
bob.penup()
bob.sety(20)

john = turtle.Turtle(shape="turtle")
john.penup()
john.sety(-20)

def move_bob():
    bob.forward(1)
    if bob.xcor() < 90:
        turtle.ontimer(move_bob, 75)

def move_john():
    john.forward(2)
    if john.xcor() < 90:
        turtle.ontimer(move_john, 100)

move_bob()
move_john()

turtle.exitonclick()

其他人也使用线程来实现这一点,但是计时器事件内置在海龟模块中。