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 相关文章推荐
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 Python
Python爬豆瓣电影实例
Feb 23 Python
Python通过属性手段实现只允许调用一次的示例讲解
Apr 21 Python
启动Atom并运行python文件的步骤
Nov 09 Python
python-opencv颜色提取分割方法
Dec 08 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
python3中sys.argv的实例用法
Apr 24 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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
转换中文日期的PHP程序
2006/10/09 PHP
再次研究下cache_lite
2007/02/14 PHP
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
python和shell变量互相传递的几种方法
2013/11/20 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
appium+python adb常用命令分享
2020/03/06 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
Python如何急速下载第三方库详解
2020/11/02 Python
django使用多个数据库的方法实例
2021/03/04 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
大学毕业感言200字
2014/03/09 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
升学宴学生答谢词
2015/01/05 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
大学生实习证明
2015/06/16 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
详细了解java监听器和过滤器
2021/07/09 Java/Android
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript