Pygame-依葫芦画瓢之兔獾大战


前几天看到国外一个12岁的孩子写的兔獾大战游戏,心生敬佩,想当年我还是12岁的时候还不知电脑为何物,连小霸王都未曾玩过。自己也未曾想去搞游戏开发,纯属自娱自乐。在此心态下,依葫芦画瓢重新架构了一下该游戏。

1. 参考资料

1.Kill Console 的PC版微信打飞机

2.Garfielt 翻译的青少年如何使用 Python 开始游戏开发

2. 游戏介绍

此游戏基本思想是兔子和敌人獾之间的战斗故事,兔子需要保护自己的窝(城堡)不被獾侵入,通过自己的武器(箭)杀死来犯之敌。在此过程中,兔子可通过杀死的敌人数累积自己的分数值,如果分数累加到设定Win值,则GameWin;箭碰到獾之后,检测是否击中(检测碰撞区域),如果击中则獾和箭同时消失;獾随机生成,并以一定的速度向城堡进攻,如果与兔子相撞,则GameOver,否则当进入城堡后(检测碰撞区域)随机降低城堡的生命值,当城堡生命值降为零时GameOver。

3.精灵介绍

从上述游戏介绍中,我们可知游戏基本精灵有:兔子,獾,城堡,箭。所以就这四类精灵分别封装相应的精灵子类,该子类继承自pygame.sprite.Sprite。这样以便在游戏操作中控制精灵。

4.主游戏

与原始程序相比,我在此基础上稍微改进了一下,改进的地方如下:

1). 引入一个BB类,对所有操作进行封装。

2). 更改游戏策略,原先游戏是通过鼠标点击来发射武器,并通过移动鼠标来改变兔子的方向,改进后的游戏是自己发射武器(借鉴Kill >Console的思路),并去掉鼠标改变兔子方向的操作,此动作一开始我也加入了,但在调用pygame.transform.rotate时出现out of memory错误,所以后来又把它删除了。

3). 原始游戏通过计时来控制游戏进度,改进后使用分数来控制进度,我觉得这样简便些。

4). 兔子的移动控制也借鉴了Kill Console的思路,在此感谢他的工作。

5. 游戏效果


5.1 游戏界面


5.2 Gameover界面


5.3 GameWin界面


6. 游戏代码

游戏代码分两个文件,一个文件bb.py为主程序代码,另一个文件bbSprite.py为游戏精灵封装代码。所有代码和游戏所需资源都放在Github中,链接如下:

http://ballwql.github.com/pygame

最新文章

  1. canvas知识点
  2. 解决Linux中遇到No such device
  3. sql函数(转)
  4. 点击显示子菜单,离开隐藏子菜单(onmouseout下包含a标签的js解决方法)
  5. Hibernate知识总结(一)——Hibernate原理概述
  6. php随笔9-thinkphp OA系统 集成UEditor
  7. 查看SQL Server数据读写分离,并设置读写分离
  8. python day06
  9. C\S 架构 DNS服务器 交换机 路由器
  10. ES标准
  11. Redis基础、应用、第三方支持组件总结
  12. POI操作Excel详解,读取xls和xlsx格式的文件
  13. shader之法线变换
  14. php知识点-1
  15. shlve 模块
  16. 使用开源库 Objective-C RegEx Categories 处理正则表达式
  17. java多线程----JUC集合”01之 框架
  18. opencv2.4.9+VS2010配置
  19. 【洛谷 P4886】 快递员 (点分治)
  20. Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法

热门文章

  1. Codeforces VK Cup Finals #424 Div.1 A. Office Keys(DP)
  2. ACE_DEBUG介绍及日志输出
  3. bzoj2428 [HAOI2006]均分数据 模拟退火
  4. lombok 配置使用以及优势
  5. js中style,currentStyle和getComputedStyle的区别以及获取css操作方法
  6. UVA 1262 Password
  7. POJ 2823 Sliding Window ST RMQ
  8. [USACO13FEB]出租车Taxi
  9. mysql数据库cmd直接登录
  10. bzoj 1079 DP