![88871604b5c6e79f727642f8a45a3fdd.png](https://i-blog.csdnimg.cn/blog_migrate/cd6a302135c893746a7e54368138276d.jpeg)
导语
写了个低配版的外星人入侵小游戏来作为19年的第一更吧让我们愉快地开始吧
开发工具
Python版本:3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
先睹为快
在cmd窗口运行"Game13.py"文件即可。
效果如下:
![59c8b899cb9cdf93c26a42ed3ca25627.png](https://i-blog.csdnimg.cn/blog_migrate/506bbe232a5aaca53785b7d5b90f3d27.jpeg)
![5781fb549db956c7a22e143f8cc00688.png](https://i-blog.csdnimg.cn/blog_migrate/287e1528f5957f43a7b0851a3d2a494b.jpeg)
原理简介
游戏简介:
玩家通过鼠标控制飞船行动和射击,若能在敌人到达游戏界面底端之前消灭所有敌人,则游戏胜利,否则游戏失败。
逐步实现:
Step1:定义游戏精灵类
首先,我们来明确一下游戏需要哪些角色。
① 我方飞船
我方飞船通过鼠标控制,其需要具备射击、移动和被敌人击中后爆炸等能力。
因此,该游戏精灵类的代码实现如下:
![ecb2a22509a34b6a07fca1e4b5da65c6.png](https://i-blog.csdnimg.cn/blog_migrate/14157d18d8a2d853b98bdd4950c1e3c3.jpeg)
② 敌人
敌人由电脑自动控制,其需要具备射击、移动和被我方击中后爆炸等能力。
因此,该游戏精灵类的代码实现如下:
![32379e6623a9b47a1511645a6752381d.png](https://i-blog.csdnimg.cn/blog_migrate/4385867bf5fe331c8d0f743521e31306.jpeg)
③ UFO
UFO由电脑控制,可以看作是彩蛋,击中这个彩蛋,你将获得大量的奖励分数,当奖励分数累积到一定量时,你将获得额外的生命值奖励。
UFO类只需要具备移动和被我方击中后爆炸的能力即可。
因此,该游戏精灵类的代码实现如下:
![6ce81dd4eb501d5164a536ded50b3601.png](https://i-blog.csdnimg.cn/blog_migrate/850eb657801ceebe028a048f23b1e2db.jpeg)
④ 子弹类
我方飞船和敌人射击时都需要用到子弹,其应当具备不断向前移动的能力。
我方子弹类的代码实现如下:
![d88c6869dc68cc7c04e8839f81935908.png](https://i-blog.csdnimg.cn/blog_migrate/e632f9a64395242c95c122a14ce3e249.jpeg)
敌方子弹类的代码实现如下:
![0083389e8ae2a7c29887c50b80f2a211.png](https://i-blog.csdnimg.cn/blog_migrate/f911907c17ec0a7d5bdbaf0a83b4f372.jpeg)
Step2:实现游戏主循环
先初始化,包括加载必要的游戏素材和实例化之前定义的游戏精灵类等等:
![282318de19ed68f2eb052a941224e50d.png](https://i-blog.csdnimg.cn/blog_migrate/fbdfc5f05b902a6ad8b425d82f5a4d41.jpeg)
然后就可以进入游戏主循环啦~
首先是按键检测,来实现用户与游戏的交互:
![c569ab3de83b39276eb9f11a43670f21.png](https://i-blog.csdnimg.cn/blog_migrate/956831f878b5a9a77ed735de070c37ef.jpeg)
接下来就是根据用户操作的结果以及电脑自动进行的操作获得的结果来实现游戏画面更新。当然,更新之前需要根据游戏规则对一些游戏精灵进行碰撞检测,包括:敌方子弹和我方飞船以及我方子弹和敌方等。
具体的代码实现如下:
![5664ef23f3faaa430f51a7b679051d8e.png](https://i-blog.csdnimg.cn/blog_migrate/56dab44c4085aa35a676843bc8d08bed.jpeg)
最后就是把一些游戏相关的数据实时显示在游戏界面上以供玩家参考:
![2746c0605635cc2fbbf768ba473dab36.png](https://i-blog.csdnimg.cn/blog_migrate/32187d53daf253e68eeb345159134774.jpeg)
Step3:定义游戏结束界面
我们只需要根据玩家是否取得了游戏胜利来展示游戏结束界面即可:
![1563351481b6208d04d9c23c469992ab.png](https://i-blog.csdnimg.cn/blog_migrate/b9d321b0f8a0433914e1a106e6d8144d.jpeg)
分享到这里,你可以去试一试,更多python学习可以关注我们哦
![aff9d7baaeef0290206109286522573e.png](https://i-blog.csdnimg.cn/blog_migrate/776e988e6afef1e7666b64ab5671c7ba.jpeg)