博客
关于我
用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/

你可能感兴趣的文章
Netty工作笔记0053---Netty核心模块梳理
查看>>
Netty工作笔记0054---EventLoop组件
查看>>
Netty工作笔记0055---Unpooled应用实例1
查看>>
Netty工作笔记0056---Unpooled应用实例2
查看>>
Netty工作笔记0057---Netty群聊系统服务端
查看>>
Netty工作笔记0058---Netty群聊系统客户端
查看>>
Netty工作笔记0059---Netty私聊实现思路
查看>>
Netty工作笔记0060---Netty心跳机制实例
查看>>
Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
查看>>
Netty工作笔记0061---Netty心跳处理器编写
查看>>
Netty工作笔记0062---WebSocket长连接开发
查看>>
Netty工作笔记0063---WebSocket长连接开发2
查看>>
vue样式穿透 ::v-deep的具体使用
查看>>
Netty工作笔记0065---WebSocket长连接开发4
查看>>
Netty工作笔记0066---Netty核心模块内容梳理
查看>>
Vue基本使用---vue工作笔记0002
查看>>
Netty工作笔记0068---Protobuf机制简述
查看>>
Netty工作笔记0069---Protobuf使用案例
查看>>
Netty工作笔记0070---Protobuf使用案例Codec使用
查看>>
Netty工作笔记0071---Protobuf传输多种类型
查看>>