汇智学堂-python小游戏(弹球游戏之五-场景中应用动画)

3.5场景中应用动画
现在我们回到我们的游戏场景中,将我们刚才学到的动画知识应用一下,达到球从指定范围内的任意位置,垂直下落到游戏场景的底部。下面是我们要做的事情。
1、获得球的id号。
2、根据球的id获得画圆时的第四个参数position[3]。
3、比较该参数与屏幕底部纵坐标a的关系,如果>=a,说明到达底部,游戏结束。

实现代码如下:

a=random.randint(50,600)
b=random.randint(50,200)
id1=canvas.create_oval(a, b, a+20, b+20, fill =“red” )
id2=canvas.create_rectangle(510,510,610,530,fill=“green”)

while 1:
position=canvas.coords(id1)
if position[3]<800:
canvas.move(1,0,5)
else:
canvas.create_text(400,420,text=“游戏结束”,fill=‘red’,font=(‘Times’,110))

position=canvas.coords(id1)中,coords函数的作用,是得到id号为id1的物体的坐标值。
将代码整合起来,整合后完整代码如下:

#-- coding:GBK --

from tkinter import *
import time
import random
import tkinter.messagebox #messagebox

closeornot=1
position=[1,1,1,1]

tk = Tk()
tk.title(“雷雷的弹球游戏”)
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=800, height=800, bd=0, highlightthickness=0)
canvas.pack()
tk.update()

#starts=[50,70,90,110,130,150,170,190,210]
a=random.randint(50,600)
b=random.randint(50,200)
id1=canvas.create_oval(a, b, a+20, b+20, fill =“red” )
id2=canvas.create_rectangle(510,510,610,530,fill=“green”)

while 1:
position=canvas.coords(id1)
if position[3]<800:
canvas.move(1,0,5)
else:
canvas.create_text(400,420,text=“游戏结束”,fill=‘red’,font=(‘Times’,110))
tk.update_idletasks()
tk.update()
time.sleep(0.05)

运行这段代码,我们可以看到生成的球,做下落动作,到达底部后,游戏结束。见图3-15、3-16
在这里插入图片描述
图3-15
在这里插入图片描述
图3-16

猜你喜欢

转载自blog.csdn.net/weixin_39593940/article/details/88361889