项目总结:从零到可玩的霓虹射击游戏

举报
yd_296221794 发表于 2026/10/24 10:39:43 2026/10/24
【摘要】 > 20 篇开发日志,从技术选型到构建配置——我们走了一遍完整的游戏开发流程。## 回顾:20 篇日志的旅程| 章节 | 主题 | 核心收获 ||---|---|---|| 1 | 项目初始化与技术选型 | TypeScript + Vite + Phaser 3 的黄金组合 || 2 | Phaser 3 核心概念 | 场景、物理、补间三大支柱 || 3 | 霓虹色板设计 | 12 个色值...

> 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 的玩家控制开始**——因为玩家控制是整个战斗循环的起点。


> 游戏开发的核心原则:**先跑起来,再跑得快**。不要一开始就追求"完美",先让玩家能玩,再让玩家觉得"好玩"。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。