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 多线程抓取图片效率对比
Feb 27 Python
利用Python实现网络测试的脚本分享
May 26 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
python实现ID3决策树算法
Aug 29 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
Django实现简单的分页功能
Feb 22 Python
Python数据分析之pandas读取数据
Jun 02 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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/11/26 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
javascript 禁止复制网页
2009/06/11 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
Python多线程编程(五):死锁的形成
2015/04/05 Python
详谈python http长连接客户端
2017/06/12 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
施工人员岗位职责
2013/12/12 职场文书
致全体运动员广播稿
2014/02/01 职场文书
出纳员岗位职责
2014/03/13 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
政协会议宣传标语
2014/10/09 职场文书
商家认证委托书格式
2014/10/16 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python