在Tkinter Canvas中移动球
Tkinter是一个标准的Python库,用于创建基于GUI的应用程序。要创建一个简单的移动球应用程序,可以使用Canvas部件,它允许用户添加图像、绘制形状和动画对象。该应用程序具有以下组件,
- 在窗口中绘制椭圆形或球的Canvas部件。
-
要移动球,我们必须定义一个名为 move_ball() 的函数。在函数中,必须定义球的位置,当球撞击画布的墙壁(左、右、上和下)时位置会不断更新。
-
要更新球的位置,我们必须使用 canvas.after(duration, function()) ,它会反映球在一定时间间隔后改变其位置。
-
最后,执行代码来运行应用程序。
示例
# 导入所需的库
from tkinter import *
# 创建一个tkinter窗口实例
win=Tk()
# 设置窗口大小
win.geometry("700x350")
# 设置窗口大小为固定
win.resizable(False,False)
# 创建一个画布部件
canvas=Canvas(win, width=700, height=350)
canvas.pack()
# 在画布部件中创建一个椭圆形或球
ball=canvas.create_oval(10,10,50,50, fill="green3")
# 移动球
xspeed=yspeed=3
def move_ball():
global xspeed, yspeed
canvas.move(ball, xspeed, yspeed)
(leftpos, toppos, rightpos, bottompos)=canvas.coords(ball)
if leftpos <=0 or rightpos>=700:
xspeed=-xspeed
if toppos <=0 or bottompos >=350:
yspeed=-yspeed
canvas.after(30,move_ball)
canvas.after(30, move_ball)
win.mainloop()
输出
运行上述代码将显示一个应用程序窗口,在画布中有一个可移动的球。