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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
Python 列表(List)操作方法详解
Mar 11 Python
Python中的日期时间处理详解
Nov 17 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
Python2与Python3的区别详解
Feb 09 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
Python实现曲线拟合的最小二乘法
Feb 19 Python
Scrapy实现模拟登录的示例代码
Feb 21 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&amp;MYSQL服务器配置说明
2006/10/09 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
json 定义
2008/06/10 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
Python中的闭包总结
2014/09/18 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python正则表达式和元字符详解
2018/11/29 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
英国女士家居服网站:hush
2017/08/09 全球购物
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
健康家庭事迹材料
2014/05/02 职场文书
妇联主席先进事迹
2014/05/18 职场文书
全陪导游词开场白
2015/05/29 职场文书
Javascript的promise,async和await的区别详解
2022/03/24 Javascript