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实现的udp协议Server和Client代码实例
Jun 04 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python部署web开发程序的几种方法
May 05 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Python并行分布式框架Celery详解
Oct 15 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 Python
python requests使用socks5的例子
Jul 25 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 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图片验证码代码
2008/03/27 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php取得字符串首字母的方法
2015/03/25 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
解决vue热替换失效的根本原因
2018/09/19 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
点球小游戏python脚本
2018/05/22 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
python中bytes和str类型的区别
2019/10/21 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python操作Jira库常用方法解析
2020/04/10 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
美国性感女装网站:bebe
2017/03/04 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
十一个高级MySql面试题
2014/10/06 面试题
《灯光》教学反思
2014/02/08 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
感谢信范文大全
2015/01/23 职场文书