python3.6使用tkinter实现弹跳小球游戏

  

本文实例为大家分享了python3.6实现弹跳小球游戏的具体代码,供大家参考,具体内容如下

        进口随机   导入的时间   从tkinter进口*         #下面定义一个球的类,有帆布和颜色两个对象   班级舞会:#定义一个球类的函数   def __init__(自我、帆布、桨、颜色):#这是球类的属性函数,球类下的函数都有这些性质   self.canvas=帆布   self.paddle=桨   self.id=canvas.create_oval(10、10、25日,25日,填补=颜色)#返回所绘小球的调用值放入对象self.id   self.canvas.move (self.id, 245100) #移动小球到(245100)坐标处,   开始=[3、2、1,1,2,3]   random.shuffle(开始)   自我。x=[0] #开始使得小球左右方向运动随机   自我。y=3 #默认开始的小球向上方运动   self.canvas_height=self.canvas.winfo_height() #画布高度函数winfo_height()返回值放入canvas_height对象中   # winfo_width self.canvas_width=self.canvas.winfo_width()()返回画布宽度放入canvas_width对象中   自我。hit_bottom=False #设定hit_bottom初始值为假的         def hit_paddle(自我,pos): #声明函数,以供调用   paddle_pos=self.canvas.coords (self.paddle.id) #将球拍的(x1, y1) (x2, y2)的坐标放到paddle_pos中   如果pos[2]祝辞=paddle_pos[0]和pos [0] & lt;=paddle_pos [2]: #   如果pos[3]祝辞=paddle_pos[1]和pos [3] & lt;=paddle_pos[3]: #比较小球y轴是否在球拍y轴内   还真#表示小球碰到了球拍   返回False #表示小球没有碰到球拍         def画(自我):#声明画函数,   self.canvas.move (self.id self.x self.y) #移动小球,移动速度为(self.x self.y),在初始化中的属性可以直接用   pos=self.canvas.coords (self.id) #把小球的左上角和右下角的坐标以列表形式(可能元组)放入pos对象中   如果pos [1] & lt;=0: #如果小球碰到画布上方   自我。y=3 #则改变移动方向向下方   如果pos[3]祝辞=自我。canvas_height: #如果小球碰到画布底端则返回hit_bottom为真实的   self.hit_bottom=True   如果self.hit_paddle (pos)==True: #小球碰到了球拍,则改变Y轴方向向上运动   self.y=3   如果pos [0] & lt;=0: #如果小球碰到了画布左边,则把X轴速度改成每次向右3个像素   self.x=3   如果pos[2]祝辞=自我。canvas_width: #如果小球碰到了画布右边,则把速度改成每次向左3个像素   self.x=3      类桨:#定义一个桨类   def __init__(自我、画布、颜色):#桨类的属性函数,默认有两个变量画布和颜色   自我。帆布画布=#将画布对象赋给self.canvas   self.id=canvas.create_rectangle(10 0, 0100年,填补=颜色)#创建球拍,将球拍的调用编号存入self.id   self.canvas.move (self.id, 200300) #将球拍移动到(200300)处   自我。x=0 #   self.canvas_width=self.canvas.winfo_width() #将画布的宽度放入canvas_width对象   self.canvas.bind_all (“& lt; KeyPress-Left>”, self.turn_left) #用bind_all()函数绑定键盘左键与tun_left函数   self.canvas.bind_all (“& lt; KeyPress-Right>”, self.turn_right) #绑定键盘右键与turn_right函数         def画(自我):#声明一个画函数   self.canvas.move (self.id self.x 0) #左右移动球拍的速度为self.x,默认不动   pos=self.canvas.coords (self.id) #将球拍的左上角和右下角的坐标存入pos对象中   如果pos [0] & lt;=0: #如果球拍x轴小于0,则不再向右移动   self.x=0   elif pos[2]祝辞=自我。canvas_width: #如果球拍要超过画布右侧了,则球拍的移动速度变为0   self.x=0      def turn_left(自我,evt): #这里的evt是调用方传过来的参数,改变球拍的移动速度向左,   self.x=5      def turn_right(自我,evt): #改变球拍的移动速度向右每次5个像素   self.x=5            #创建框架并且命名和固定,然后创建该框架的画布   tk=tk() #创建框架对象tk   tk.title(游戏)#框架对象tk显示的名字为“游戏”   tk.resizable(0,0) #固定框架   tk.wm_attributes(“最高的”,1)#显示在最外层   帆布=画布(tk、宽=500,高=400,bd=0, highlightthickness=0) #创建画布画布,属于tk框架对象,   canvas.pack() #显示画布的变化   tk.update() #显示框架的变化         #把类赋值给对象球,如果调用了球就可以实现该类的作用   桨=桨(画布,“蓝色”)#调用拍的类给对象桨用   球=球(帆布、桨、“绿色”)#调用球的类给对象球用      而真正:#要注意而语句以防止死循环,先设置为真   如果球。hit_bottom==False: #没有碰到底部的话执行下面的语句   ball.draw() #调用球对象的函数画()   paddle.draw() #调用桨对象的函数画()   tk.update_idletasks ()   tk.update() #更新框架   time . sleep(0.01) #睡眠0.01秒   elif球。hit_bottom==True: #要是小球接触了底部   画布。create_text(200100年,文本='啊哈,你失去了它,\ nHow尝试再次# 63;”,字体=(“*”,22))#在(200100)坐标处创建文本“…”,字号22号   tk.update() #更新内容

python3.6使用tkinter实现弹跳小球游戏