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解析模块(ConfigParser)使用方法
Dec 10 Python
python基于socket实现网络广播的方法
Apr 29 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
python求最大连续子数组的和
Jul 07 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
python垃圾回收机制(GC)原理解析
Dec 30 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
学会Python数据可视化必须尝试这7个库
Jun 16 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 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
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
php HTML无刷新提交表单
2016/04/05 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
python打开网页和暂停实例
2014/09/30 Python
Python map和reduce函数用法示例
2015/02/26 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
AJAX的全称是什么
2012/11/06 面试题
高中打架检讨书
2014/02/13 职场文书
运动会演讲稿
2014/05/07 职场文书
群教个人对照检查材料
2014/08/20 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
Html5生成验证码的示例代码
2021/05/10 Javascript
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS