这是一个跟随 Godot 教程制作的 2D 射击小游戏 demo。项目使用 Godot 4.7 创建,主场景为 scene/game.tscn。
原教程视频地址:Bilibili 教程合集
当前 demo 已完成一局可运行的基础玩法闭环:
- 玩家可使用
WASD移动,方向键射击。 - 敌人会从出生点随机生成,并持续追踪玩家。
- 已实现多种敌人配置,包括基础敌人、高速敌人、带壳敌人和自爆敌人。
- 子弹可命中敌人,敌人死亡时播放表现并按配置掉落道具。
- 道具系统支持移速、射速和螺旋弹幕强化。
- HUD 显示玩家生命和关卡倒计时。
- 倒计时结束触发胜利,玩家生命归零触发失败。
- 已接入基础音效、背景音乐、受击闪烁和结算弹窗。
- 安装 Godot 4.7 或兼容版本。
- 用 Godot 打开仓库根目录下的
project.godot。 - 运行默认主场景
scene/game.tscn。
.
├── project.godot # Godot 工程配置,指定主场景和输入映射
├── scene/ # 游戏场景和主要脚本
│ ├── game.tscn / game.gd # 主场景、刷怪、倒计时、HUD、胜负结算
│ ├── player.tscn / player.gd # 玩家移动、射击、生命和道具效果
│ ├── enemy.tscn / enemy.gd # 敌人追踪、受伤、死亡、爆炸和掉落
│ ├── bullet.tscn / bullet.gd # 子弹移动、碰撞和生命周期
│ └── pickup.tscn / pickup.gd # 道具显示、拾取和生命周期
└── resources/
├── config/ # EnemyConfig、PickupConfig 和具体配置资源
├── animation/ # 敌人动画资源
├── atlas/ # 道具图集资源
├── audio/ # 音频资源
├── font/ # 字体资源
└── texture/ # 贴图资源
核心关系如下:
flowchart TD
ProjectGodot[project.godot] --> MainScene[scene/game.tscn]
MainScene --> GameScript[scene/game.gd]
GameScript --> Player[scene/player.gd]
GameScript --> Enemy[scene/enemy.gd]
Player --> Bullet[scene/bullet.gd]
Enemy --> Pickup[scene/pickup.gd]
Enemy --> EnemyConfig[resources/config/enemy_config.gd]
Pickup --> PickupConfig[resources/config/pickup_config.gd]
EnemyConfig --> TresResources[resources/config/*.tres]
PickupConfig --> TresResources
本仓库中的自写代码以 MIT License 发布,详见 LICENSE。
项目基于教程学习实践整理而来,教程内容版权归原作者所有。仓库中使用的第三方素材、字体、音效、音乐等资源仍归其原作者或对应权利方所有;如需复用,请自行确认其授权范围。