ontimer
是一个 Turtle Graphics 模块中的函数,用于设置定时器,即在一定时间后执行指定的函数。它的语法如下:
turtle.ontimer(fun, t=0)
其中,fun
是要调用的函数,t
是定时器的时间,以毫秒为单位。如果不指定时间,那么默认为0,即立即执行函数。
下面是一个示例代码,每隔1秒钟打印一次“Hello, world!”:
import turtle
def print_hello():
print("Hello, world!")
turtle.ontimer(print_hello, 1000) # 1秒钟后再次调用print_hello函数
print_hello() # 第一次调用函数
turtle.mainloop() # 运行画布,使定时器生效
注意:turtle.mainloop() ,如果没有这句话,有的ide环境不会持续输出结果,即“闪现”然后退出,让你看不到持续输出。
在这个例子中,print_hello
函数会不断地被调用,每次调用完之后会再次调用 ontimer
函数来设置下一次调用的时间。需要注意的是,ontimer
函数只有在 turtle.mainloop()
运行后才会生效。
相关问题
python中turtle.ontimer用法
turtle.ontimer是一个函数,在turtle库中,它的作用是在指定时间后运行一个函数。其语法为:turtle.ontimer(function, t=None)。其中,function是要运行的函数,t是指定的时间(以毫秒为单位)。当t为None时,函数将在TurtleGUI上的下一个事件中执行。使用此函数,可以在程序中添加延迟效果。
注:我在自己的pycharm中编译的时候,ontimer的第二个参数必须不能是None,可以是0.如果是0,那么程序运行结束后,会立即运行function。
python烟花程序代码
以下是一个简单的Python烟花程序的代码:
import turtle
import random
# 设置画布
turtle.bgcolor('black')
window = turtle.Screen()
window.title("Python Fireworks")
window.setup(width=800, height=600)
# 创建烟花函数
def create_firework():
colors = ["red", "blue", "green", "yellow", "orange", "purple", "white"]
x = random.randint(-350, 350)
y = random.randint(-250, 250)
size = random.randint(10, 40)
color = random.choice(colors)
fireworks = turtle.Turtle()
fireworks.speed(0)
fireworks.shape("circle")
fireworks.color(color)
fireworks.shapesize(size/20)
fireworks.up()
fireworks.goto(x, y)
fireworks.down()
fireworks.stamp()
fireworks.hideturtle()
return fireworks
# 控制烟花爆炸
def explode_firework(firework):
firework.clear()
firework.color("gray")
for _ in range(20):
firework.shapesize(random.randint(1, 4))
firework.stamp()
firework.hideturtle()
# 主循环
while True:
firework = create_firework()
window.ontimer(lambda: explode_firework(firework), random.randint(500, 2000))
turtle.done()