本文共 480 字,大约阅读时间需要 1 分钟。
基本思想是使用after来创建动画循环.在它最简单的形式,它看起来像这样:
def animate():
c.move(ball, 6, 0)
root.after(33, animate)
这将使对象移动6个像素,并使原因本身在33毫秒内再次运行.更改该数字(在此示例中为33)可确定项目移动的速度. 33ms大约是30fps.
当然,您需要添加一个检查以查看该项目是否在屏幕外,这样您就可以停止循环或将项目移回左边缘.此外,您不应该依赖全局变量,但我想删除尽可能多的额外代码,以便您可以看到函数的基本特性.
以下是基于问题代码的完整工作示例:
from tkinter import *
def animate():
c.move(ball, 6, 0)
root.after(33, animate)
root = Tk()
c = Canvas(root, width = 200, height = 100)
c.pack()
ball = c.create_oval(0, 25, 50, 75)
animate()
root.mainloop()
转载地址:http://mkyms.baihongyu.com/