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 相关文章推荐
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
浅谈Python中range和xrange的区别
Dec 20 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
学习python可以干什么
Feb 26 Python
Python单元和文档测试实例详解
Apr 11 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
python字典一键多值实例代码分享
Jun 14 Python
python+logging+yaml实现日志分割
Jul 22 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
详解用Python把PDF转为Word方法总结
Apr 27 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网上商城购物车设计代码分享
2012/02/15 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
php经典算法集锦
2015/11/14 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
PHP7中I/O模型内核剖析详解
2019/04/14 PHP
PHP之header函数详解
2021/03/02 PHP
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python通过socket查询whois的方法
2015/07/18 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python编写登陆接口的方法
2017/07/10 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
python实现拓扑排序的基本教程
2018/03/11 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
自荐信结尾
2013/10/27 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
中秋节主题班会
2015/08/14 职场文书