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实现将元祖转换成数组的方法
May 04 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
详解python编译器和解释器的区别
Jun 24 Python
python打开windows应用程序的实例
Jun 28 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
jupyter notebook 重装教程
Apr 16 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
python实现马丁策略的实例详解
Jan 15 Python
Python 全局空间和局部空间
Apr 06 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
很实用的一个完整email发送程序
2006/10/09 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
Python文件及目录操作实例详解
2015/06/04 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
python绘制简单折线图代码示例
2017/12/19 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python实现键盘输入的实操方法
2019/07/16 Python
求职者怎样写自荐信
2014/04/13 职场文书
医院标语大全
2014/06/23 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书