我正在使用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()
答案 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()