项目总结:从零到可玩的霓虹射击游戏
> 20 篇开发日志,从技术选型到构建配置——我们走了一遍完整的游戏开发流程。
## 回顾:20 篇日志的旅程
| 章节 | 主题 | 核心收获 |
|---|---|---|
| 1 | 项目初始化与技术选型 | TypeScript + Vite + Phaser 3 的黄金组合 |
| 2 | Phaser 3 核心概念 | 场景、物理、补间三大支柱 |
| 3 | 霓虹色板设计 | 12 个色值,三层映射(TS -> Phaser -> CSS) |
| 4 | 字体系统设计 | 三种字体,三种信息层级 |
| 5 | BootScene 开机场景 | 300ms 延迟,零资源加载 |
| 6 | PreloadScene 程序化纹理 | 三张贴图,1800ms 加载条 |
| 7 | MenuScene 菜单场景 | 故障文字、扫描线、双输入 |
| 8 | GlitchText 组件 | RGB 分离故障效果 |
| 9 | HoloPanel 组件 | 全息面板与扫描线动画 |
| 10 | HUD 组件 | 血条、能量、分数、波次 |
| 11 | GameScene 战斗场景 | Arena 背景、玩家呼吸动画 |
| 12 | 玩家控制与移动 | 键盘控制、边界限制 |
| 13 | 敌人波次系统 | 难度曲线、敌人类型 |
| 14 | 子弹系统与碰撞检测 | 对象池、碰撞回调 |
| 15 | 补间动画应用 | 呼吸、扫描、进度条 |
| 16 | 扫描线与网格背景 | 视觉层次、空间感 |
| 17 | 相机特效 | 淡入淡出、闪光 |
| 18 | TypeScript 严格模式 | 类型即文档 |
| 19 | Vite 构建配置 | 手动分块、相对路径 |
| 20 | 项目总结 | 从零到一的完整流程 |
## 技术栈总结
```
┌─────────────────────────────────────────────┐
│ NEON RUNNER 2077 │
├─────────────────────────────────────────────┤
│ 游戏引擎: Phaser 3.90 │
│ 语言: TypeScript 5.9 (strict) │
│ 构建: Vite 5.4 (base: './') │
│ 字体: Orbitron / Rajdhani / Share Tech Mono │
│ 颜色: 12 色霓虹色板 │
│ 场景: Boot / Preload / Menu / Game (4 个) │
│ UI 组件: GlitchText / HoloPanel / HUD (3 个)│
│ 物理: Arcade Physics (零重力) │
│ 产物: dist/ (双 chunk: main + phaser) │
└─────────────────────────────────────────────┘
```
## 设计原则总结
### 1. 颜色语义优先
每个颜色都有明确的语义:绿色=安全,橙色=警告,红色=危险。玩家不需要看文字,一眼就能读懂状态。
### 2. 动画是信息,不是装饰
每个动画都应该告诉玩家"这个东西是活的"。呼吸动画让玩家觉得"玩家在呼吸",扫描线让玩家觉得"面板在工作"。
### 3. 背景要淡,前景要亮
背景网格透明度 0.18-0.3,HUD 透明度 1.0。玩家在战斗中不会去欣赏背景,但背景的存在感决定了整个场景的氛围。
### 4. 类型即文档
TypeScript 的 `strict` 模式确保每个变量都有类型。类型即文档——如果一个变量的类型不确定,它就不是"可维护的"。
### 5. 产物要小,部署要简单
`base: './'` 让 `dist/` 可以被双击打开。`manualChunks` 让 Phaser 单独打包,浏览器可以缓存。
## 下一步:从"占位符"到"可玩"
NEON RUNNER 2077 的当前版本里,战斗循环还没有真正实现。`GameScene` 里的 `placeholderText` 写着 "COMBAT ARENA // STANDBY"。下一步需要实现:
1. **玩家控制**:WASD/方向键移动,空格键射击
2. **敌人波次**:基于时间的波次推进,敌人类型混合
3. **子弹系统**:对象池、碰撞检测、分数奖励
4. **游戏结束**:血量归零时过渡到 GameOverScene
5. **音效系统**:射击音效、爆炸音效、背景音乐
## 结语
从零到可玩的霓虹射击游戏,我们走了一遍完整的流程:技术选型 -> 项目初始化 -> 视觉系统 -> 场景系统 -> UI 组件 -> 构建配置。
这个项目不是"完整的游戏",但它是一个**可扩展的框架**——每个组件都是独立的,每个场景都是可替换的,每个配置都是可调整的。
如果你想继续开发这个项目,最好的方式是:**从 GameScene 的玩家控制开始**——因为玩家控制是整个战斗循环的起点。
> 游戏开发的核心原则:**先跑起来,再跑得快**。不要一开始就追求"完美",先让玩家能玩,再让玩家觉得"好玩"。
- 点赞
- 收藏
- 关注作者
评论(0)