python编写弹球游戏的实现代码
弹球游戏:
fromtkinterimport*
importtime
importrandom
tk=Tk()#创建一个界面
tk.title("弹球游戏")
canvas=Canvas(tk,width=800,height=600,bg="skyblue",bd=0,highlightthickness=0)
tk.resizable(0,0)#表示边框不能被拉伸
canvas.pack()#使部件放在主窗口中
tk.update()#刷新界面
classBall:#球的类
def__init__(self,canvas,paddle,color):
self.canvas=canvas
self.paddle=paddle
self.id=canvas.create_oval(10,10,25,25,fill=color)#在画布上画出一个球
self.canvas.move(self.id,240,100)#初始球的位置
stat=[-3,-2,-1,1,2,3]
random.shuffle(stat)
self.x=stat[0]
self.y=-3
self.canvas_height=self.canvas.winfo_height()#获取画布的的高度
self.canvas_width=self.canvas.winfo_width()
self.hit_bottom=False
defhit_paddle(self,pos):#判断输赢
paddle_pos=self.canvas.coords(self.paddle.id)
ifpos[2]>=paddle_pos[0]andpos[0]<=paddle_pos[2]:
ifpos[3]>=paddle_pos[1]andpos[3]<=paddle_pos[3]:
returnTrue
returnFalse
defdraw(self):#小球移动
self.canvas.move(self.id,self.x,self.y)
pos=self.canvas.coords(self.id)
ifpos[1]<=0:#判断小球是否碰到边框,如果碰到回弹
self.y=3
ifpos[3]>=self.canvas_height:#判断球拍是否有接到球,如果没接到游戏结束
self.hit_bottom=True
ifself.hit_paddle(pos)==True:#判断求是否碰到了球拍,如果碰到了使小球回弹
self.y=-3
ifpos[0]<=0:#来判断球拍是不是碰到了边框,,
self.x=3
ifpos[2]>=self.canvas_width:
self.x=-3
classPaddle:#球拍的的类
def__init__(self,canvans,color):
self.canvas=canvas
self.id=canvas.create_rectangle(0,0,150,10,fill=color)
self.canvas.move(self.id,400,450)
self.x=0
self.canvas_width=self.canvas.winfo_width()
self.canvas.bind_all("",self.turn_left)#通过按键来使球拍移动
self.canvas.bind_all("",self.turn_right)
defturn_left(self,event):#每次按键球拍移动的距离
self.x=-5
defturn_right(self,event):
self.x=5
defdraw(self):#球拍移动的方法
pos=self.canvas.coords(self.id)
self.canvas.move(self.id,self.x,0)
ifpos[0]<=0:
self.x=0
ifpos[2]>=self.canvas_width:
self.x=0
paddle=Paddle(canvas,"blue")
ball=Ball(canvas,paddle,"red")
whileTrue:#用循环如果球怕没有接到球就推出
ifball.hit_bottom==False:
ball.draw()
paddle.draw()
else:
break
tk.update_idletasks()#不停的刷新画布
tk.update()
time.sleep(0.01)
总结
以上所述是小编给大家介绍的python编写弹球游戏的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!