游戏编程课设
使用:直接解压运行 游戏编程课设.exe 即可
一、游戏策划
游戏类型:2D横版游戏
画风:像素风
游戏概念和设计:玩家操纵主人公闯关打怪,最终取得游戏胜利
游戏规则:
- 主角需要杀死所有怪物来获取他们身上的金币,以及收集散落的金币,来打开通往下一关卡的大门;
- 主角有初始血量6点,但是血量无法回复;通过当前关卡将会恢复所有血量;
- 主角可以左右移动,可以二段跳
- 主角具有三种攻击方式:
- 普通攻击:可以打中一定范围内的敌人,攻击频率高,无后摇,可以随意移动,但是伤害较低
- 横扫:只有在地面或平台上才能发动,且攻击期间完全无法操作,前摇时间长,限制大,但是伤害较高
- 下砸:只有在空中才能发动,且攻击期间完全无法操作,前摇时间长,限制较大,可以利用前端攻击敌人,较灵活,伤害一般
- 普通攻击:可以打中一定范围内的敌人,攻击频率高,无后摇,可以随意移动,但是伤害较低
- 主角收到攻击不会产生僵直,受到攻击后,一段时间内免疫伤害;
- 场景内会有固定数量的怪物;击杀怪物必定会掉落金币;怪物一共有两种,Rat 和 Bat,他们在自己的领域范围内随机移动,一旦主角进入他们的察觉范围后,他们会警觉并且追击主角,追击过程中会增加移动速度;主角脱离察觉范围后,怪物会丢失目标,并回到自己的领地;怪物收到攻击会有一定僵直。
- 游戏特殊场景:
- 地刺:持续对人物造成伤害。
- 移动平台:可以规律移动自身的位置。
- 门:需要集齐指定数量的金币才能进入。
- 单向平台:从下方可以直接闯过,从上方需要主角操作(按
S
)才能通过。
- 地刺:持续对人物造成伤害。
- 选项菜单:
- 开局有主菜单
- 游戏中有暂停菜单
- 开局有主菜单
测试和反馈:开发者测试游戏,以及内测游戏(alpha)
二、实现过程
查找素材:在各大平台上查找一些开源素材
游戏引擎:Unity3D 2021版LTS
主要文件结构:
1 |
|
游戏脚本:语言C#
文件 | 说明 |
---|---|
BackGroungFollow.cs | 背景视差效果 |
BloodEffect.cs | 血液粒子效果销毁 |
CameraFollow.cs | 摄像机跟随 |
CameraShake.cs | 相机抖动 |
CoinItem.cs | 吃金币效果 |
CoinToDoor.cs | 金币投入门中 |
CoinUi.cs | 金币UI部分 |
DoorToNextLevel.cs | 传送到下一关的门 |
Enemy.cs | 敌人的抽象类 |
EnemyBat.cs | 蝙蝠 |
EnemyRat.cs | 老鼠 |
FloatPointBase.cs | 浮动的文字 |
GameController.cs | 游戏控制 |
HealthBar.cs | 血条UI部分 |
MainMenu.cs | 主菜单 |
MovingPlatform.cs | 移动平台 |
PauseMenu.cs | 暂停菜单 |
PlayerController.cs | 主角操作控制 |
PlayerHealth.cs | 主角血量 |
PlayerSlam.cs | 主角普通攻击 |
PlayerSpin.cs | 主角下砸 |
PlayerSweep.cs | 主角横扫 |
SoundManager.cs | 游戏音效 |
Spike.cs | 地刺 |
UIManager.cs | UI跟随门 |
主要部分的具体实现:
-
人物
- 人物站立:给人物加上钢体组件,设置动画Idle,设置碰撞框,加上地面并设置碰撞框
- 人物左右移动
A D
:人物具有初始速度属性,按下A
或D
可以给角色加一个左右的向量,再乘上初始速度来实现移动。设置动画,以及切换动画的转向。 - 二段跳
Space
:设置动画逻辑,在空中可以额外跳跃一次,接触地面可以一段跳,并且允许二段跳。 - 攻击
J K L
:设置攻击子对象,给子对象设置攻击碰撞判定框,并编写脚本来实现判定的出现和消失。
- 交互
E
:在门内可以并按下E可以完成投币或者进入门的操作
- 人物站立:给人物加上钢体组件,设置动画Idle,设置碰撞框,加上地面并设置碰撞框
-
敌人
- 设置动画逻辑
- 编写脚本
- 调试参数
-
门,金币,地刺
- 设置碰撞判定
- 编写脚本
- 设置参数
-
声音控制
- 编写脚本,将函数暴露
- 需要触发声音时,调用播放声音函数。
-
地图绘制
- 摆放做好的预制件
- 使用瓦片地图绘制
-
动画切换
- 设置好参数(bool 或者 触发器)
- 在脚本中实现动画参数的变化
-
单向平台
- 添加组件
Platform Effect 2D
实现单向穿过 - 编写脚本实现按键穿过(暂时修改Player碰撞层级为其他,穿过后修改回来)
- 添加组件
-
受伤相机震动
- 录制相机抖动动画
- 设置好动画控制器
- 编写脚本触发
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GXBLOGS!
评论