Python实现弹球小游戏


Posted in Python onAugust 01, 2020

本文主要给大家分享一个实战项目,通过python代码写一款我们儿时大多数人玩过的游戏---小弹球游戏。只不过当时,我们是在游戏机上玩,现在我们通过运行代码来玩,看看大家是否有不一样的体验,是否可以重温当年的乐趣呢!

整个游戏实现比较简单,只需在安装python的电脑上即可运行,玩游戏,通过键盘键控制弹球挡板的移动即可。原理不多说,且让我们去看看吧。

1、代码运行后,游戏界面如下所示:

Python实现弹球小游戏

2、游戏过程中,界面如下所示:

Python实现弹球小游戏

3、游戏结束后,界面如下所示:

Python实现弹球小游戏

游戏实现部分源码如下:

def main():
  tk = tkinter.Tk()

  # call back for Quit
  def callback():
    if mb.askokcancel("Quit", "Do you really wish to quit?"):
      Ball.flag = False
      tk.destroy()

  tk.protocol("WM_DELETE_WINDOW", callback)

  # Init parms in Canvas
  canvas_width = 600
  canvas_hight = 500
  tk.title("小弹球游戏V1版")
  tk.resizable(0, 0)
  tk.wm_attributes("-topmost", 1)
  canvas = tkinter.Canvas(tk, width=canvas_width, height=canvas_hight, bd=0, highlightthickness=0, bg='#00ffff')
  canvas.pack()
  tk.update()

  score = Score(canvas, 'red')
  paddle = Paddle(canvas, "magenta")
  ball = Ball(canvas, paddle, score, "grey")

  game_over_text = canvas.create_text(canvas_width / 2, canvas_hight / 2, text='Game over', state='hidden',
                    fill='red', font=(None, 18, "bold"))
  introduce = '欢迎来到小弹球游戏 V1版:\n点击任意键--开始\n停止--回车键\n继续--回车键\n'
  game_start_text = canvas.create_text(canvas_width / 2, canvas_hight / 2, text=introduce, state='normal',
                     fill='magenta', font=(None, 18, "bold"))
  while True:
    if (ball.hit_bottom == False) and ball.paddle.started:
      canvas.itemconfigure(game_start_text, state='hidden')
      ball.draw()
      paddle.draw()
    if ball.hit_bottom == True:
      time.sleep(0.1)
      canvas.itemconfigure(game_over_text, state='normal')
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)


if __name__ == '__main__':
  main()

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以上就是Python实现弹球小游戏的详细内容,更多关于Python 弹球游戏的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现的金山快盘的签到程序
Jan 17 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
python 实现在Excel末尾增加新行
May 02 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
Python selenium自动化测试模型图解
Apr 15 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
pytorch学习教程之自定义数据集
Nov 10 Python
分享Python获取本机IP地址的几种方法
Mar 17 Python
序列化Python对象的方法
Aug 01 #Python
Python 忽略文件名编码的方法
Aug 01 #Python
Python 如何展开嵌套的序列
Aug 01 #Python
Python 日期与时间转换的方法
Aug 01 #Python
Python 执行矩阵与线性代数运算
Aug 01 #Python
Python实现数字的格式化输出
Aug 01 #Python
Python实现一个简单的递归下降分析器
Aug 01 #Python
You might like
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
python将字符串转换成json的方法小结
2019/07/09 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
家长会演讲稿范文
2014/01/10 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
储备店长岗位职责
2015/04/14 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL