【简直太不可思议,我用Python写了个弹球游戏】
菜鸟独白:
弹球游戏相信大家都玩过,非常经典好玩的游戏!其实对于刚入门的小白来说,通过游戏学编程,是一个非常有趣的方法!当时这个程序比较简单,而且是Py2.7开发的,今天我来增强一下加入很多趣味的功能,快来看一下吧!
整个游戏的设计思路
1.开发库:
Python做游戏开发有很多库,比较有名的是pygame,但是需要额外安装第三方的库,这次我们直接用Python默认的tk库,自带的库,省去了安装的麻烦,非常方便!
2.游戏的设计思路:
1).建画布
- 用tk建一个画布canvas,创建背景色
- 建开机欢迎画面,和有上角的提示文本
- 在画布上画出球,木板,建2个类一个类是ball,一个类是Paddle
2).控制球和木板的移动
- 用canvas.move()来控制球的移动和木板的移动
- 用canvas上监听一些事件,比如用上下箭头来移动木板
- 用tk.update()来不断的刷新画布
3).检测碰撞
- 球碰到木板:若球的坐标是否落在木板的外围坐标内,则更改球的轨迹,反弹
- 球碰到墙体:若球的坐标碰到了左右和上面的墙体,则更改球的轨迹,若碰到底部,则Game over
- 整个游戏的设计是不是是非常简单啊,今天我在原来的基础上增强了一些非常好玩的趣味功能
NO.2
自己动手添加
好玩功能
游戏增强的功能
原来的版本太单调了,这次我们除了增加启动的界面说明之外,从球和木板两个维度来变化.球的颜色会变化,来增加趣味性!详细如下:
1.兼容了Python2和Python3
原来的代码是一年前的,现在大部分都开始用Python3.x来开发了,所以我们现在的代码要升级到Py3,并且要兼容Py2.怎么做呢,我们的代码Py2和Py3的区别主要在引入库上,直接做一个隔离即可。
2.增加记分功能
打游戏怎么能不记分呢!这次我增加了一个Score类,专门来记录碰撞的分数
1).在画面的左上角create一个text来记录分数.
2).当球碰到了木板加分:
3.增加了球和木板的互动
球在碰到木板之后会反弹,这次我们增加了一些变化。把球的颜色设计为三种颜色:
灰色球:表示是普通球,对木板的长度影响
红色球:表示是火焰球,对木板的长度会缩短
当灰色球碰撞到木板之后,会随机变化,若为红色,则木板和球都变为红色,然后右上角会出现’W-‘, 表示木板的长度会缩短
绿色球:表示是生命球, 对木板的长度会变长
当球变成为绿色之后,木板会变成,比如图上的木板长途从原来的180,变成了210.同时右上角的出现”W+”,表示木板的长度会变长.
3.增加了游戏的暂停和结束
游戏的暂停:
当游戏玩到一半,电话响了怎么版,要上厕所怎么办,没有暂停键怎么搞.我们需要扩充我们的按键绑定!
- KeyPress-Left/Right:上下箭头是控制木板的移动
- Button-1:是鼠标左键,点击一下即可
- space:空格键是暂停,再按一下空格键是继续
游戏的退出:
在游戏结束之后,可以直接ctrl+c退出
或者点击窗口的关闭按钮,销毁窗体,在tk里面用callback的方法,弹出一个对话框,如果选择cancel游戏继续,如果选择ok游戏关闭(但是mainloop里面有一个小bug,我还没有来得及fix,所以点击关闭会有一个小错误)
很多人想要入门学习Python爬虫,但是不知道怎么学,我给大家简单的介绍几个Python常用的库和书籍:
爬虫常用库
- urllib、urlib2(Python中的urllib)python内建的网络请求库
- urllib3:线程安全的HTTP网络请求库
- requests:使用最广泛的网络请求库,兼容py2和py3
- grequests:异步的requests
- BeautifulSoup:HTML、XML操作解析库
- lxml:另一种处理 HTML、XML的方式
- tornado:异步网络框架
- Gevent:异步网络框架
- Scrapy:最流行的爬虫框架
- pyspider:爬虫框架
- xmltodict:xml转换成字典
- pyquery:像jQuery一样操作HTML
- Jieba :分词
- SQLAlchemy:ORM框架
- celery :消息队列
- rq:简单消息队列
- python-goose :从HTML中提取文本
书籍
- 《图解HTTP》
- 《HTTP权威指南》
- 《计算机网络:自顶向下方法》
- 《用Python写网络爬虫》
- 《Python网络数据采集》
- 《精通正则表达式》
- 《Python入门到实践》
- 《自己动手写网络爬虫》
- 《Crypto101》
- 《图解密码技术》
如果我的文章对你有帮助,不妨来波关注+收藏+转发,让更多的人收益,菜鸟学Python与你共同进步。
转载请注明:徐自远的乱七八糟小站 » 【简直太不可思议,我用Python写了个弹球游戏】