太好玩了!用Python写个弹球游戏2.0

浏览: 1871

阅读本文大概需要3分钟

菜鸟独白:

弹球游戏相信大家都玩过,非常经典好玩的游戏!一年前我写过一篇用Python写一个弹球游戏(用Python写个弹球的游戏),参考了"趣味学Python".其实对于刚入门的小白来说,通过游戏学编程,是一个非常有趣的方法!当时这个程序比较简单,而且是Py2.7开发的,今天我来增强一下加入很多趣味的功能,快来看一下吧!

NO.1 整个游戏的设计思路

1.开发库:

Python做游戏开发有很多库,比较有名的是pygame,但是需要额外安装第三方的库,这次我们直接用Python默认的tk库,自带的库,省去了安装的麻烦,非常方便!

2.游戏的设计思路:

1).建画布

  • 用tk建一个画布canvas,创建背景色

  • 建开机欢迎画面,和有上角的提示文本

  • 在画布上画出球,木板,建2个类一个类是ball,一个类是Paddle

image.png

2).控制球和木板的移动

  • 用canvas.move()来控制球的移动和木板的移动

  • 用canvas上监听一些事件,比如用上下箭头来移动木板

  • 用tk.update()来不断的刷新画布

3).检测碰撞

  • 球碰到木板:若球的坐标是否落在木板的外围坐标内,则更改球的轨迹,反弹

  • 球碰到墙体:若球的坐标碰到了左右和上面的墙体,则更改球的轨迹,若碰到底部,则Game over

  • 整个游戏的设计是不是是非常简单啊,今天我在原来的基础上增强了一些非常好玩的趣味功能

详细的步骤可以参考我一年前的那篇文章,链接用Python写个弹球的游戏

NO.2 游戏增强的功能

原来的版本太单调了,这次我们除了增加启动的界面说明之外,从球和木板两个维度来变化.球的颜色会变化,来增加趣味性!详细如下:

.兼容了Python2和Python3

原来的代码是一年前的,现在大部分都开始用Python3.x来开发了,所以我们现在的代码要升级到Py3,并且要兼容Py2.怎么做呢,我们的代码Py2和Py3的区别主要在引入库上,直接做一个隔离即可。



2.增加记分功能

打游戏怎么能不记分呢!这次我增加了一个Score类,专门来记录碰撞的分数

1).在画面的左上角create一个text来记录分数.


2).当球碰到了木板加分:


3.增加了球和木板的互动

球在碰到木板之后会反弹,这次我们增加了一些变化。把球的颜色设计为三种颜色:

灰色球:表示是普通球,对木板的长度影响

image.png

红色球:表示是火焰球,对木板的长度会缩短

image.png

当灰色球碰撞到木板之后,会随机变化,若为红色,则木板和球都变为红色,然后右上角会出现'', 表示木板的长度会缩短

绿色球:表示是生命球,  对木板的长度会变长

image.png

当球变成为绿色之后,木板会变成,比如图上的木板长途从原来的180,变成了210.同时右上角的出现"W+",表示木板的长度会变长.

3.增加了游戏的暂停和结束

游戏的暂停:

当游戏玩到一半,电话响了怎么版,要上厕所怎么办,没有暂停键怎么搞.我们需要扩充我们的按键绑定!


  • KeyPress-Left/Right:上下箭头是控制木板的移动

  • Button-1:是鼠标左键,点击一下即可

  • space:空格键是暂停,再按一下空格键是继续

游戏的退出:

在游戏结束之后,可以直接ctrl+c退出

或者点击窗口的关闭按钮,销毁窗体,在tk里面用callback的方法,弹出一个对话框,如果选择cancel游戏继续,如果选择ok游戏关闭(但是mainloop里面有一个小bug,我还没有来得及fix,所以点击关闭会有一个小错误)



image.png

说了这么多,大家可以动手敲一敲,需要源码请留言,前50位先到先得

欢迎加入小密圈

跟我一起玩数据分析

小密圈即将展开,实战项目学东西,

有人手把手教,还有钱拿的活动

没有听错,你学东西我送红包

image.png

 推荐阅读:

2017年度电影榜单出炉

双十二来了,我爬取了淘宝上所有的羽绒服

探秘全国近1600个Python岗位数据分析

学好Python薪水有多少|我爬取了所有的Python职位

一份值得了解的Google Python风格规范指南

南京楼市火吗|16000套二手房数据分析

5分钟带你了解Python2和3的区别|从此不再纠结

推荐 1
本文由 菜鸟学Python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册