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的Zato发送AMQP消息的教程
Apr 16 Python
Python做简单的字符串匹配详解
Mar 21 Python
Python删除Java源文件中全部注释的实现方法
Aug 30 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
pip安装python库的方法总结
Aug 02 Python
Python常用数据类型之间的转换总结
Sep 06 Python
python模拟实现斗地主发牌
Jan 07 Python
pip安装tensorflow的坑的解决
Apr 19 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 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
PHP 一个页面执行时间类代码
2010/03/05 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
twig模板常用语句实例小结
2016/02/04 PHP
php使用正则验证中文
2016/04/06 PHP
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
对python模块中多个类的用法详解
2019/01/10 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
python实现udp聊天窗口
2020/03/31 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
.net C#面试题
2012/08/28 面试题
计算机应用专业推荐信
2013/11/13 职场文书
优秀团队申报材料
2014/12/26 职场文书
环卫个人总结
2015/03/03 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
图书借阅制度范本
2015/08/06 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS
Python sklearn分类决策树方法详解
2022/09/23 Python