python编写弹球游戏的实现代码


Posted in Python onMarch 12, 2018

 弹球游戏:

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)

总结

以上所述是小编给大家介绍的python编写弹球游戏的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
树莓派中python获取GY-85九轴模块信息示例
Dec 05 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
python保存网页图片到本地的方法
Jul 24 Python
python实现月食效果实例代码
Jun 18 Python
Djang的model创建的字段和参数详解
Jul 27 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
Python类成员继承重写的实现
Sep 16 Python
python爬虫泛滥的解决方法详解
Nov 25 Python
如何使用Python进行PDF图片识别OCR
Jan 22 Python
python实现自动清理文件夹旧文件
May 10 Python
python学生管理系统代码实现
Apr 05 #Python
python图书管理系统
Apr 05 #Python
怎么使用pipenv管理你的python项目
Mar 12 #Python
python实现图书管理系统
Mar 12 #Python
python实现快速排序的示例(二分法思想)
Mar 12 #Python
Python中的pack和unpack的使用
Mar 12 #Python
python文本数据相似度的度量
Mar 12 #Python
You might like
Protoss兵种介绍
2020/03/14 星际争霸
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
git进行版本控制心得详谈
2017/12/10 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
通俗讲解python 装饰器
2020/09/07 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
创业计划实施的7大步骤
2014/02/05 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
世界文化遗产导游词
2015/02/13 职场文书
任命通知范文
2015/04/21 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
导游词之五台山
2019/10/11 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript