博客
关于我
用Python做个美少女大战小怪兽
阅读量:161 次
发布时间:2019-02-27

本文共 1195 字,大约阅读时间需要 3 分钟。

640?wx_fmt=jpeg

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

640

1

游戏的界面设计

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

640?wx_fmt=png

640

2

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

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

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

640?wx_fmt=png

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

640

3

整个游戏的逻辑设计

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

640

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

640

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

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

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

640?wx_fmt=png

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

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

完整的视频

先睹为快

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

更多有趣有用文章

640?wx_fmt=png

转载地址:http://qqsd.baihongyu.com/

你可能感兴趣的文章
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
查看>>
mysql deadlock found when trying to get lock暴力解决
查看>>