Kill Gun 是一款使用 Godot 引擎开发的 2D 自上而下射击游戏。玩家控制角色在地图上移动,使用武器消灭敌人,通过不同波次的敌人来完成关卡。
- Game.gd: 全局游戏管理器,处理游戏状态、玩家引用和相机效果
- ServiceLocator.gd: 服务定位器,提供对各管理器的全局访问
- EventBus.gd: 事件总线,负责系统间的消息传递和解耦
- LevelManager.gd: 管理关卡加载和切换
- WeaponManager.gd: 管理武器切换和装备
- AudioManager.gd: 处理游戏中的音频播放
- EnemySpawner.gd: 管理敌人生成和波次控制
- StateMachine.gd: 通用状态机框架
- State.gd: 基础状态类
- 敌人状态: 包含移动、攻击、受击、死亡和空闲状态
- 玩家状态: 包含死亡状态
- Main.tscn: 主场景,游戏入口点
- Player.tscn: 玩家角色,处理移动和动画
- WeaponBase.tscn: 基础武器系统
- BulletBase.tscn: 子弹物理和碰撞
- EnemyBase.tscn: 敌人AI和寻路系统
- PlayerData.gd: 玩家属性数据
- EnemyData.gd: 敌人属性数据
- LevelData.gd: 关卡配置数据
- WeaponData.gd: 武器配置数据
- StartMenu.tscn: 开始菜单
- HUD.tscn: 游戏中界面,显示生命值、弹药和关卡信息
- DamageLabel.tscn: 伤害数字显示效果
- 玩家移动与动画系统
- 多武器系统,支持切换不同武器
- 武器射击、弹药管理和换弹机制
- 敌人AI和寻路系统
- 关卡波次系统,支持多个关卡配置
- 伤害计算系统,包括暴击机制
- 相机震动效果
- HUD显示(生命值、弹药、武器信息、波次计数)
- 音效系统(射击、换弹、受击音效)
- 敌人寻路问题: 敌人使用NavigationAgent2D进行寻路,但可能存在路径计算未完成就移动的问题。
- 子弹销毁机制: 子弹销毁基于时间计数,需要确保子弹在击中目标或超出生存时间时正确销毁。
- 错误处理: 部分代码缺少完善的错误检查,如在资源加载失败时的处理。
- 性能优化: 大量敌人同时生成可能导致性能问题,未实现对象池系统。
- 玩家状态管理: 玩家状态机目前较为简单,仅实现了死亡状态。
- 游戏存档与读取: 目前无游戏进度保存功能,ServiceLocator中预留了SaveManager接口。
- 游戏暂停和设置: 虽有暂停功能框架,但缺少完整的暂停菜单和设置界面。
- 敌人种类多样性: 项目结构支持多种敌人(Ghoul、Spitter、Summoner),但需要完善每种敌人的具体实现。
- 升级系统: 无玩家技能或属性升级系统。
- 背景音乐: 音频系统框架已实现,但缺少背景音乐。
- 更丰富的视觉特效: 可以添加更多特效,如环境效果、武器特效等。
- 游戏结束界面: 游戏结束时缺乏专门的胜利/失败界面。
- 安装 Godot 引擎(版本 4.x)
- 克隆此仓库
- 使用 Godot 引擎打开项目
- 点击运行按钮开始游戏
- WASD: 角色移动
- 鼠标: 瞄准
- 鼠标左键: 射击
- 鼠标右键: 手动换弹
- Q/E: 切换武器(如果有多把武器)
- 完善多种敌人类型的实现和AI行为
- 添加更多武器和弹药类型
- 实现升级系统和技能树
- 添加Boss战和特殊关卡
- 实现游戏存档功能和配置系统
- 添加背景音乐和更多音效
- 优化性能,特别是敌人AI和子弹物理
- 添加联机多人模式