83 lines
2.6 KiB
Markdown
83 lines
2.6 KiB
Markdown
# 星种:长夜之前
|
||
|
||
一款基于 Vue 3 的单机文明演化增量游戏。从无名潮池中的复制分子出发,跨越陆冠、炉城与星种四个纪元,在暮阳风暴抵达前完成生命档案、磁场天幕与星种方舟。
|
||
|
||

|
||
|
||
## 直接游玩
|
||
|
||
无需安装、无需后端、无需联网:
|
||
|
||
1. 下载仓库;
|
||
2. 直接双击 `dist/index.html`;
|
||
3. 游戏会在浏览器中运行。
|
||
|
||
`dist/index.html` 是 Vite 编译后的单文件发行版,JavaScript 与 CSS 均已内联。它已通过 `file://` 方式实际加载和点击验证。
|
||
|
||
## 核心内容
|
||
|
||
- 四个线性纪元:潮池、陆冠、炉城、星种;
|
||
- 12 个科学与文明里程碑;
|
||
- 点击采集与自动增长组成的增量循环;
|
||
- 本地自动存档与最多四小时离线收益;
|
||
- 生态平衡、生命档案、磁场天幕三项结局指标;
|
||
- 唯一正式结局“ 两片海的黎明 ”与新世界播种循环;
|
||
- 桌面端与移动端自适应界面;
|
||
- 无图片、字体、接口等运行时网络依赖。
|
||
|
||
## Vue、Bit 与动画组件
|
||
|
||
项目参考 [Bit 的 Vue 组件开发说明](https://bit.dev/docs/vue-intro),将界面拆分为职责单一、输入输出明确的 Vue 单文件组件:
|
||
|
||
- `EvolutionScene.vue`:行星、轨道、星空与主点击交互;
|
||
- `MilestoneRail.vue`:纪元里程碑、资源门槛与完成状态;
|
||
- `SignalLog.vue`:文明叙事信号流;
|
||
- `EndingOverlay.vue`:最终发射结局。
|
||
|
||
动画层使用 `motion-v`,为组件提供弹簧入场、手势按压、阶段切换和结局转场;背景呼吸、极光、扫描、城市灯光与发射轨迹使用本地 CSS 动画。组件边界及 Bit 跟踪建议见 `docs/bit-components.md`。
|
||
|
||
## 本地开发
|
||
|
||
要求 Node.js 20.19+ 或 22.12+。
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
质量检查与发行构建:
|
||
|
||
```bash
|
||
npm test
|
||
npm run build
|
||
npm run verify:dist
|
||
npm audit
|
||
```
|
||
|
||
构建会重新生成可直接打开的 `dist/index.html`。
|
||
|
||
## 项目结构
|
||
|
||
```text
|
||
star-seed/
|
||
├── dist/index.html # 已编译、自包含、可直接运行的游戏入口
|
||
├── docs/ # 组件说明与游戏截图
|
||
├── src/components/ # Bit 风格的独立 Vue 动画组件
|
||
├── src/game/gameState.js # 纯函数游戏状态与规则
|
||
├── src/App.vue # 应用编排、存档与游戏循环
|
||
├── src/styles.css # 科幻视觉系统与响应式布局
|
||
└── src/**/*.test.js # 状态与界面测试
|
||
```
|
||
|
||
## 技术栈
|
||
|
||
- Vue 3.5
|
||
- Vite 8
|
||
- Motion for Vue (`motion-v`)
|
||
- Vitest + Vue Test Utils
|
||
- Vite SingleFile
|
||
|
||
## 许可
|
||
|
||
MIT
|