您的位置:首页 > 编程语言 > Python开发

汇智学堂-python小游戏(弹球游戏之四-认识动画)

2019-03-09 08:40 176 查看

3.4认识动画
在我们PYTHON中tkinter模块,做动画不是它的特长,但基本的处理还是可以做的。例如,我们可以创建一个填了色的圆,用下面的代码让它在屏幕上横向移动。
下面是我们要做的事情。
1、在指定位置,画一绿色的圆。
2、认识圆的id。
3、使圆沿着屏幕左侧每间隔0.07秒,移动一下圆形。

实现代码如下:

4000 #练习基础动画

import time
from tkinter import*
tk=Tk()
canvas=Canvas(tk,width=900,height=900)
canvas.pack()

canvas.create_oval(100, 100, 200, 200, fill = “green” )

for x in range(0,500):
canvas.move(1,0,5)
tk.update()
time.sleep(0.07)

当你运行这段代码,圆形会从屏幕上侧纵向移动到屏幕下侧。如图3-12

图3-12
它是如何工作的呢?我们着重看一下下面这段代码

id=canvas.create_oval(100, 100, 200, 200, fill = “green” )
print(id)

当你输入这一行时,屏幕上会打印出一个数字,它是这个圆形的id。canvas.move(1,0,5)
中的1,就是指向这个id。

Canvas.move函数会把任意画好的对象移动到把x及y坐标增加给定值的位置。例如canvas.move(1,0,5)会把id为1的对象横向移动0个像素,纵向5个像素。要想把它再移回来,我们可以用函数canvas.move(1,0,-5)。

我们来修改代码,体会一下不同方向的动画。
向上运动。见图3-13

import time
from tkinter import*
tk=Tk()
canvas=Canvas(tk,width=900,height=900)
canvas.pack()

canvas.create_oval(400, 400, 500, 500, fill = “green” )

for x in range(0,500):
canvas.move(1,0,-5)
tk.update()
time.sleep(0.07)

图3-13
向左上方运动。见图3-14

import time
from tkinter import*
tk=Tk()
canvas=Canvas(tk,width=900,height=900)
canvas.pack()

canvas.create_oval(600, 600, 700, 700, fill = “green” )

for x in range(0,500):
canvas.move(1,-5,-5)
tk.update()
time.sleep(0.07)

图3-14

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: