9.24unity_lab1
-
基础游戏:
https://gamemaker.weixin.qq.com/ide#/home/lbZThkOTU4YTItYjM4Ni00YWM0LTliOTEtODhmOWQ5NDdiOTJm
-
优化改进:
https://gamemaker.weixin.qq.com/ide#/home/lbODFiNzM4MDUtYzE4Ny00NWQ0LWEzNzMt
-
文档:
-
场景以及物体
关卡场景
-
小飞机
-
当游戏结束时删除自己
-
接收到开始游戏的通知
- 先**隐藏自己**
- 除非游戏结束,否则**每隔0.5s克隆自己**
-
当出现核弹时
总得分加1,并且替换为小飞机爆炸动画
动画循环播放0.5s,之后**删除此克隆体**
-
当离开下边缘时,删除克隆体
-
当**作为克隆体启动时**
将自己移动到随机位置(X坐标随机,Y坐标设置为900),并且显示
然后**设置移动方向和移动距离**
如果**碰撞到了战机子弹则得分加1,播放爆炸声音,切换为战机爆炸动画,最后删除此克隆体**
-
-
背景
-
当场景切换到关卡时
初始化变量:将gameover、得分、核弹数量、子弹模式都设置为0
然后**通知所有人开始游戏**
-
当**接受到开始游戏的通知**时
在游戏开始时,对**变量进行初始化**,设置飞机的初始位置
然后**播放游戏的背景音乐**
构建了一个循环执行的逻辑,用于控制游戏元素飞机的移动
通过条件判断逻辑,允许游戏元素在特定条件下改变其行为
-
-
战机
-
当**接收到游戏开始的通知**时
初始化战机的位置(随机X坐标),替换战机贴图并且显示出来
初始化子弹模式
设置战机能够通过鼠标拖拽
-
当**碰撞到侦察机子弹**时
停止声音播放,切换子弹模式
播放战机爆炸动画,播放游戏结束声音,设置为不可拖拽
通知所有人游戏结束,将
gameover
**设置为1**,并且切换场景为结束页面
-
当**碰撞到BOSS子弹**时
停止声音播放,切换子弹模式
播放战机爆炸动画,播放游戏结束声音,设置为不可拖拽
通知所有人游戏结束,将
gameover
**设置为1**,并且切换场景为结束页面
-
**接收到空投**时
按照对应空投的效果,播放对应的子弹声音,切换为应的子弹模式以及设置持续时间
-
-
BOSS
-
**碰撞到战机子弹**时
碰撞到战机子弹时,将**生命值life减去1**
当**生命值为0的时候,随机刷新空投**,播放对应声音和动画,最后删除该物体
-
**接收到gameover消息**时
删除该克隆体
-
当**克隆体启动**时
初始化克隆体生命值life和位置,并且**一直发射boss子弹**(直到游戏结束)
当BOSS碰撞到上、左、右边缘的时候则反弹,防止boss出界
-
当**BOSS离开下边缘**的时候
删除该克隆体
-
当**接收到游戏开始的消息**时
先隐藏BOSS, 然后**每隔20s后克隆生成boss**
-
-
侦察机
-
当**接收到游戏开始的消息**时
最开始隐藏自己,然后**等待固定时间持续克隆生成自己**
当
gameover
为1,游戏结束时停止克隆
-
当**接收到gameover的消息**时
删除该克隆体
-
当**克隆体启动**时
首先先**显示自己,初始化生命值和位置**
如果**碰撞到左、右边缘则反弹,防止出界,并且持续减少其y值**
侦察机克隆时,发射子弹
-
当**接收到核弹爆炸的消息**时
将**所有总得分加5,并且切换为侦察机爆炸动画**
然后**删除此克隆体**
-
当**侦察机离开下边界**时
删除此克隆体
-
当侦察机碰撞到子弹时
将自己的**生命值减1,并且销毁所有的子弹**
如果生命值为0,则**随机刷新空投,并且播放侦察机爆炸动画以及对应的声音,最后删除此克隆体**
-
-
核弹和按钮浮层:
-
当核弹按钮被点击时
如果核弹数量大于0,则**通知所有人核弹爆炸,核弹数量减1并且播放相应的声音**
-
核弹数量
用来显示核弹数量:当**接收到开始游戏、核弹爆炸、获得道具的消息时,即时更新核弹数量**
-
-
空投
-
双弹空投
当**核弹爆炸时,删除此克隆体**
当**收到开始游戏的消息时,隐藏自己**
当**收到获得道具的消息时,隐藏自己**
当作为克隆体启动时:将**自己的坐标设置为创建者的坐标,开启物理引擎**
-
炸弹空投
当**接收到获取道具的消息时,关闭物理引擎,然后先扩大尺寸,然后缩小尺寸(模拟空投创建到空投消失),核弹数量加1,最后删除此克隆体**
当**接收到开始游戏的消息时,隐藏自己**
当**作为克隆体启动时,将自己的位置设置为创建者的位置,开启物理引擎**
当**接收到核弹启动的消息时,删除该克隆体**
-
开始页场景
-
开始游戏
当被**点击时播放对应的声音,并且切换到关卡场景**
-
飞机大战标题:显示作用,无事件
-
背景:显示作用,无事件
结束页场景
-
重新开始
当**被点击时播放对应的声音,并且切换到关卡场景**
当**该场景启动时,将得分上传到排行榜,并且停止声音的播放**
-
背景:无事件
-
Game Over
:显示作用,无事件
-
-
项目介绍以及总结
项目概述
《飞机大战》是一款结合射击与生存元素的2D游戏,玩家控制战机在空中与敌机进行战斗,收集道具,使用核弹等策略来获得更高的得分。游戏通过多种机制和动态元素,提供紧张刺激的游戏体验。
主要功能模块
1. 场景与物体
1.1 关卡场景
-
描述:游戏的主要活动区域,包含玩家的战机、敌机(侦察机和BOSS)、背景和得分显示。
-
功能:
- 初始化游戏变量(如得分、核弹数量、游戏结束状态)。
- 通过逻辑控制游戏元素的生成与行为。
1.2 小飞机(敌机)
-
描述:敌机的表现形式,玩家需要击败以获得得分。
-
功能:
- 碰撞检测:当碰撞到战机子弹时,得分加1并播放爆炸音效。
- 当离开下边界时,删除自身克隆体。
1.3 背景
-
描述:游戏的视觉背景,增强游戏氛围。
-
功能:
- 在场景切换时初始化变量(gameover、得分、核弹数量等)。
2. 游戏元素
2.1 战机
-
描述:玩家控制的飞机,负责攻击敌机。
-
功能:
- 初始化位置和状态,能够通过鼠标拖拽进行移动。
- 碰撞处理:与敌机子弹或BOSS子弹碰撞时播放爆炸动画,停止游戏并切换到结束页面。
2.2 核弹
-
描述:强力道具,用于清除敌机并增加得分。
-
功能:
- 核弹数量在游戏中动态更新。
- 被点击时,如果数量大于0,通知所有人核弹爆炸,减少核弹数量并播放音效。
2.3 空投
-
类型:
- 双弹空投:当核弹爆炸时删除,获得道具时隐藏。
- 炸弹空投:获取道具时增加核弹数量,模拟空投创建到消失的过程,最后删除自身。
-
功能:提供额外的道具和增强玩家的战斗能力。
3. 游戏逻辑
3.1 得分系统
-
描述:通过击败敌机和使用核弹获得得分。
-
功能:
- 得分实时更新并显示在界面上。
- 特定事件(如核弹爆炸)会增加得分。
3.2 敌机生成
-
描述:定时生成侦察机和BOSS。
-
功能:
- 侦察机在游戏开始后每隔固定时间生成。
- BOSS每20秒生成一次,发射子弹并与玩家战机进行互动。
3.3 碰撞检测
-
描述:检测战机与敌机、子弹之间的碰撞。
-
功能:
- 碰撞到敌机子弹时,减少生命值并处理游戏结束逻辑。
- 碰撞到战机时触发相应的动画和音效。
4. 游戏结束处理
-
描述:当战机被击毁时,处理游戏结束逻辑。
-
功能:
- 播放游戏结束动画,停止游戏并切换到结束页面。
- 上传得分到排行榜,停止背景音乐播放。
5. 用户交互
5.1 开始游戏
-
描述:玩家点击开始按钮进入游戏。
-
功能:
- 播放开始音效,初始化所有游戏变量并切换到关卡场景。
5.2 重新开始
-
描述:在结束页面点击重新开始按钮。
-
功能:
- 播放音效并切换回关卡场景,重新初始化游戏状态。
总结
《飞机大战》项目通过良好的游戏设计和机制实现,提供了丰富的游戏体验。玩家在游戏中通过操作战机与敌机进行互动,利用道具和核弹策略性地提高得分。项目的成功实施依赖于场景设计、用户交互和游戏机制的整合。未来可以考虑增加更多的游戏元素、关卡和挑战,以提升游戏的可玩性和吸引力
-
-