本项目使用pygame模块编写了射击游戏,目的在于训练本身的Python基本功、了解中小型程序框架以及学习代码重构等。游戏具备必定的可玩性,感兴趣的能够试一下。python
项目说明:出自《Python编程 从入门到实践》中12-14章节的例子。git
- 游戏包含飞船、外星人两个角色。
- 外星人编队向左右和下方移动,直至接触到屏幕底端或碰撞到外星人;飞船顶端可发射子弹击落外星人。
- 随着游戏的进行,子弹速度、飞船移动速度、外星人移动速度以可设置的速度提高,增长游戏难度和可玩性。
- 游戏界面显示剩余飞船数目(左上角)、最高分(中上)、当前分和游戏等级(右上角)等信息。
github地址:https://github.com/ikheu/alien_invasiongithub
效果图以下:编程

程序框架:框架
alien_invasion.py |
包含运行游戏的run_game函数 |
alien.py |
外星人类 |
bullet.py |
子弹类 |
button.py |
按钮类 |
game_functions.py |
包含实现游戏功能的函数 |
game_stats.py |
跟踪游戏信息的类 |
scoreboard.py |
显示得分的类 |
settings.py |
存储设置的类 |
ship.py |
飞船类 |
项目心得:函数
- 项目中使用pygame模块中的功能比较少,主要包括两部分:和图形相关的reac对象,以及判断对象间的碰撞的函数。并且这两部分很容易理解,所以项目封闭性不强,很适合做为锻炼python基本功的练手项目。
- 代码重构方面:程序的各部分应功能相对独立,层次清晰明了。如在setting.py中设置游戏参数,而避免直接把具体参数写到功能相关的程序里,致使后续修改的困难。同时还要避免把函数写得太长,如最复杂的game_function文件里包含许多个功能单一的函数。在添加新功能前,要审核现有代码,对混乱、低效的代码进行清理。有句话叫动态类型一时爽,代码重构火葬场,多是程序结构还比较简单吧,这个还没能深入体会到。
- 在写代码时,要尽可能保持好的风格。能够参考Effective Python一书。
- 熟练使用git、github进行版本控制(很重要)。
另外写的博客貌似也没人看啊,有点沮丧。不过仍是要沉住气,就权当本身的私人技术笔记了,傻笑:)学习