社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用Python做个美少女大战小怪兽

菜鸟学Python • 5 年前 • 900 次点击  

对于飞机大战,想必大家都一定不会陌生,但是对于美少女大战小怪兽呢,大家是否玩过呢,今天小编就带领大家从头开始,制作一个《美少女大战小怪兽》的初级版。之所以是叫初级版是因为这个游戏只是实现了最为简单的功能,后续的大家还可以继续添加。



1

游戏的界面设计


本次游戏的编写是基于pygame函数库进行的,首先我们来看一下游戏的界面,当我们运行程序后,会先弹出来一个前言界面,简单的提示我们应该如何玩这个游戏,然后我们便进入了游戏的主界面,如下图所示:


2

整个游戏的角色,场景设计



接下来就是面对整个游戏的角色,场景设计了,游戏的设计主要分为四个部分,分别是四个类,对应着怪兽、美少女战士、子弹和整个的游戏。


我们挑选出一个类的函数来为大家稍作解释,作为面向对象的编程,怪兽应该有什么属性和动作呢,针对于这个游戏,小编想到它的属性有位置,速度,是否存活已经剩余的血量,外加被破坏时的样子,而他的动作无非就是上下方向的运动。这样一来,一个清晰的怪物形象就展现在大家的面前,怪兽类的程序如下图所示:


上图的程序中,小编按照上面我们所描述的定义了怪兽的血量、位置等属性,并定义了其运动的函数。其他的例如子弹和美少女战士都是按照类似的思想去设计,大家可以对照源码去理解,这对于锻炼大家面向对象编程能力的提高很有帮助。



3

整个游戏的逻辑设计


然后就是整个游戏的逻辑编写了。这也是将各个对象整合到一起的关键点。在游戏类的初始化定义里,如下图所示:

小编定义了游戏界面的带线啊哦,游戏界面的题目以及背景图画等信息,并实例化了美少女战士、怪兽和子弹。
游戏的主逻辑是这样的,当我们运行程序后,pygame通过监测键盘的按键来判断玩家对于美少女战士的移动方向,与此同时,子弹被不断的发射出去,程序如下图所示:


当子弹打中怪兽时,此时子弹就失去了生命,同时怪兽也失去了生命,他们都被丢弃掉了,然后怪兽和子弹便被重置,我们的得分会加1000分,如果怪兽打中了美少女战士,那么怪兽和美少女战士都被重置。


同时玩家的生命值也会减1。我们不断完成这些逻辑判断的同时,pygame也不断的将子弹、怪兽和美少女战士画到界面上来,就构成了我们的一次循环。


当我们完成上面的操作后,程序便会不断的再进入这个循环当中来,直到玩家的生命值变为0时,此时,便会出现下图的界面。

程序会告诉我们的得分情况,然后提示我们是否要重新来一局还是直接退出该游戏。如果我们选择重新再来一局的话,那么程序便会像我们前面所讲的那样,重新进入循环执行,直到我们想退出游戏。


以上就是小编带领大家对于游戏的梳理,下面就让小编为大家带来展示吧,为了增加游戏的体验,小编还特地为该游戏找到了不错的配音,如果大家觉得配音不喜欢的话,可以自己选择自己喜欢的配音进行更改即可。


完整的视频

先睹为快



需要源码,请后台输入:【小助手】,暗号美少女


更多有趣有用文章

手把手教你,菜鸟也能用Python写一个2048游戏

强烈推荐,用Python轻松打造定制款《植物大战僵尸》
小白都能看懂,用Python来实现一个区块链,就这么简单

天下武功为快不破,戏说Python与Go高并发争锋!

建议看一下,零基础学Python都想问的6个问题,老司机给你两千字解答


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49661
 
900 次点击