Python 3乌龟绘图速度

时间:2017-11-09 14:33:09

标签: python turtle-graphics

我正在使用turtle在python中创建一个游戏,但我无法控制循环中乌龟的速度,因为乌龟的速度为0.它应该像闪存一样运行但它正在运行正常速度

import turtle
c=turtle.Screen()
a=turtle.Turtle()
a.speed(0)
b=True
def ch( a , d):
      global b
      b = False
while b:
      a.fd(1)
      c.onclick(ch)
c.mainloop()

2 个答案:

答案 0 :(得分:0)

speed(0)只能加快动画效果。 尝试使用c.tracer(0, 0)

这完全禁用了所有动画,并且应该使它更快一点。虽然,要刷新屏幕,您需要拨打c.update()

答案 1 :(得分:0)

首先,您的代码结构不正确。你不需要在循环中调用onclick(),它只是设置一个处理函数,所以只需要调用一次。此外,mainloop()应该运行事件,而不是在事件结束后调用。

除非你增加前进距离,否则我不相信你会从这段代码中获得更高的速度。简单地递增到fd(3)会产生明显的差异。我对你的代码进行了修改:

from turtle import Turtle, Screen

def click_handler(x, y):
    global flag
    flag = False

def turtle_forward():
    if flag:
        turtle.forward(3)
        screen.ontimer(turtle_forward, 0)

flag = True

screen = Screen()
screen.onclick(click_handler)

turtle = Turtle()
turtle.speed('fastest')
turtle_forward()

screen.mainloop()