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性能优化的20条建议
Oct 25 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
python简单商城购物车实例代码
Mar 15 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
Mar 29 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
python实现大学人员管理系统
Oct 25 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
JavaScript DOM 添加事件
2009/02/14 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
js图片处理示例代码
2014/05/12 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python sys.argv[]用法实例详解
2018/05/25 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
工程概预算专业毕业生求职信
2013/10/04 职场文书
酒店管理自荐信
2013/10/23 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
国家助学金获奖感言
2014/01/31 职场文书
旅游管理毕业生自荐书
2014/02/02 职场文书
建筑投标担保书
2014/05/20 职场文书
刑事起诉书范文
2015/05/19 职场文书
离婚案件上诉状
2015/05/23 职场文书
远程教育培训心得体会
2016/01/09 职场文书
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
Python办公自动化PPT批量转换操作
2021/09/15 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技