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实现baidu hi自动登录的代码
Feb 10 Python
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
解析Python中的__getitem__专有方法
Jun 27 Python
基于python爬虫数据处理(详解)
Jun 10 Python
python游戏地图最短路径求解
Jan 16 Python
python opencv判断图像是否为空的实例
Jan 26 Python
python 实现目录复制的三种小结
Dec 04 Python
Scrapy模拟登录赶集网的实现代码
Jul 07 Python
用python进行视频剪辑
Nov 02 Python
Django多数据库联用实现方法解析
Nov 12 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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
解析yii数据库的增删查改
2013/06/20 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
基于node实现websocket协议
2016/04/25 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
简历自荐信
2013/12/02 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
学生实习证明范文
2014/09/28 职场文书
未婚证明书模板
2014/10/08 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
Redis基本数据类型Set常用操作命令
2022/06/01 Redis