Files

83 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 星种:长夜之前
一款基于 Vue 3 的单机文明演化增量游戏。从无名潮池中的复制分子出发,跨越陆冠、炉城与星种四个纪元,在暮阳风暴抵达前完成生命档案、磁场天幕与星种方舟。
![游戏画面](docs/star-seed-game.png)
## 直接游玩
无需安装、无需后端、无需联网:
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