内容简介:这篇文章主要介绍了python编写弹球游戏的实现代码,需要的朋友可以参考下
弹球游戏:
from tkinter import * import time import random 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() #刷新界面 class Ball: #球的类 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 def hit_paddle(self, pos): #判断输赢 paddle_pos = self.canvas.coords(self.paddle.id ) if pos[2]>= paddle_pos[0] and pos[0]<= paddle_pos[2]: if pos[3]>= paddle_pos[1] and pos[3]<= paddle_pos[3]: return True return False def draw(self): #小球移动 self.canvas.move(self.id,self.x,self.y) pos=self.canvas.coords(self.id) if pos[1]<=0: #判断小球是否碰到边框,如果碰到回弹 self.y=3 if pos[3]>=self.canvas_height: #判断球拍是否有接到球 ,如果没接到游戏结束 self.hit_bottom=True if self.hit_paddle(pos)==True: #判断求是否碰到了球拍,如果碰到了使小球回弹 self.y=-3 if pos[0]<=0: #来判断球拍是不是碰到了边框,, self.x=3 if pos[2]>=self.canvas_width: self.x=-3 class Paddle: #球拍的的类 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("<KeyPress-Left>",self.turn_left) #通过按键来使球拍移动 self.canvas.bind_all("<KeyPress-Right>", self.turn_right) def turn_left(self,event): #每次按键球拍移动的距离 self.x=-5 def turn_right(self,event): self.x=5 def draw(self): #球拍移动的方法 pos=self.canvas.coords(self.id) self.canvas.move(self.id, self.x, 0) if pos[0]<=0: self.x=0 if pos[2]>=self.canvas_width: self.x=0 paddle=Paddle(canvas,"blue") ball=Ball(canvas,paddle,"red") while True: #用循环 如果球怕没有接到球就推出 if ball.hit_bottom==False: ball.draw() paddle.draw() else: break tk.update_idletasks()# 不停的刷新画布 tk.update() time.sleep(0.01)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- canvas 弹球
- 微软放弃的游戏被他们复活了:Windows经典「三维弹球」现实版,CAD建模、Arduino编程、数控机床打造,...
- 基于顺丰同城接口编写sdk,java三方sdk编写思路
- 使用 Clojure 编写 OpenWhisk 操作,第 1 部分: 使用 Lisp 方言为 OpenWhisk 编写简明的代码
- 编写一个Locust文件
- 编写现代 JavaScript 代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
硅谷百年史
[美]阿伦·拉奥(Arun Rao)、[美]皮埃罗·斯加鲁菲(Piero Scarruffi) / 闫景立、侯爱华 / 人民邮电出版社 / 2014-4-1 / 99.00
一百多年来,仅硅谷就培育了50多位诺贝尔奖获得者,以及无数依靠智慧和知识而成为百万富翁的人。这一人类历史上最伟大的科技创新与创业历程为什么会发生在硅谷?究竟是如何发生的?其他地方是否可以复制出“硅谷”? 《硅谷百年史——伟大的科技创新与创业历程(1900-2013)》以编年体的顺序,从无线电技术、晶体管、集成电路,到人类基因组、互联网和云计算,详尽地记述了硅谷在100多年中所发生的重大科技事......一起来看看 《硅谷百年史》 这本书的介绍吧!