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判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
Python多图片合并PDF的方法
Jan 03 Python
Python字符串的常见操作实例小结
Apr 08 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
python 实现识别图片上的数字
Jul 30 Python
python的常见矩阵运算(小结)
Aug 07 Python
python小项目之五子棋游戏
Dec 26 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
Python读取yaml文件的详细教程
Jul 21 Python
python dict如何定义
Sep 02 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
基于Zend的Config机制的应用分析
2013/05/02 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
强制设为首页代码
2006/06/19 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
详解python 爬取12306验证码
2019/05/10 Python
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
物业电工岗位职责
2013/11/20 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
优秀交警事迹材料
2014/01/26 职场文书
大学自主招生推荐信
2014/05/10 职场文书
民事答辩状格式范文
2015/05/21 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Python打包为exe详细教程
2021/05/18 Python
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL