Complete Cocos Creator port with level bundles, themes, and tooling.
Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
72
README.md
72
README.md
@@ -7,69 +7,47 @@ Unity「主站」移植工程,**Cocos Creator 3.8.8** + **Web**,API 与 `uni
|
||||
| 项 | 状态 |
|
||||
|----|------|
|
||||
| 核心玩法 / JS 桥 | ✅ |
|
||||
| Unity Levels600(600 关) | ✅ 已导出 |
|
||||
| 关卡数据库(当前 5 关) | ✅ `levels-database.json` |
|
||||
| 丝路主题 Sprite | ✅ player/ship/coin/tile |
|
||||
| 主站 Web 对接模板 | ✅ `web-template/` |
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. Cocos Creator 3.8.8 打开本目录
|
||||
2. 新建场景 → 空节点挂 **AppBootstrap** → 存 `assets/scenes/main.scene` → 设为启动场景
|
||||
3. 播放预览
|
||||
2. 打开 `assets/scenes/main.scene`(或新建场景,空节点挂 **AppBootstrap**)
|
||||
3. **资源管理器** 刷新,确认存在 `assets/resources/level/levels-database.json`
|
||||
4. 播放预览 → 画面顶部 **「切换关卡」** 或 Inspector **SwitchLevel**
|
||||
|
||||
## 关卡
|
||||
## 关卡数据库(单一文件)
|
||||
|
||||
- **600 关**:`assets/scripts/level/levels-600.generated.ts`(由 `tools/export_unity_levels.py` 生成)
|
||||
- 注册入口:`assets/scripts/level/LevelRegistry.ts`
|
||||
- 重新导出:
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| [`assets/resources/level/levels-database.json`](assets/resources/level/levels-database.json) | **全部关卡**(增删查改) |
|
||||
| [`assets/scripts/level/LevelDatabase.ts`](assets/scripts/level/LevelDatabase.ts) | 加载 / CRUD API |
|
||||
| [`tools/levels-database.md`](tools/levels-database.md) | 维护说明 |
|
||||
|
||||
每条关卡:
|
||||
|
||||
- `spawns`、`boundary` ← Unity `Levels*.cs`
|
||||
- `ground`、`border` ← `Assets/Prefabs/Level/LevelN.prefab` Tilemap(与原版地图一致)
|
||||
- `unityPrefab` ← 原资源路径(对照用)
|
||||
|
||||
### 从 Unity 重新导出
|
||||
|
||||
```bash
|
||||
python3 tools/export_unity_levels.py \
|
||||
--input "/path/to/Unity/Assets/Scripts/Core/Levels600.cs" \
|
||||
--output assets/scripts/level/levels-600.generated.ts
|
||||
|
||||
# 或
|
||||
bash tools/export_all.sh "/path/to/Unity项目"
|
||||
python3 tools/export_all_levels.py \
|
||||
--unity-root "/path/to/主站" \
|
||||
--output assets/resources/level/levels-database.json
|
||||
```
|
||||
|
||||
## 贴图资源
|
||||
## 贴图
|
||||
|
||||
已复制至 `assets/resources/textures/`(需在编辑器中刷新资源):
|
||||
`assets/resources/textures/silu/`、`ui/` — 见 `VisualAssets.ts`
|
||||
|
||||
- `silu/player_F.png`, `player_B.png`, `ship_F.png`, `ship_B.png`, `Baseblock.png`
|
||||
- `ui/coin.png`, `ui/bg.png`
|
||||
## 主站 Web
|
||||
|
||||
加载逻辑:`assets/scripts/visual/VisualAssets.ts`
|
||||
|
||||
## 主站 Web 联调
|
||||
|
||||
1. **构建发布** → Web Desktop → 得到 `build/web-desktop/`
|
||||
2. 阅读 [`web-template/主站对接说明.md`](web-template/主站对接说明.md)
|
||||
3. 使用 [`web-template/main-site.html`](web-template/main-site.html) + [`cocos-bridge.js`](web-template/cocos-bridge.js) 联调
|
||||
|
||||
```javascript
|
||||
// 与 Unity 完全相同
|
||||
unityInstance.SendMessage("GameController", "SwitchLevel", 21);
|
||||
unityInstance.SendMessage("Player", "CallMove", 2);
|
||||
unityInstance.SendMessage("Player", "CallPlayerInfo");
|
||||
```
|
||||
|
||||
## 目录
|
||||
|
||||
```
|
||||
assets/scripts/ 游戏逻辑
|
||||
assets/resources/ 贴图(Sprite)
|
||||
assets/scripts/level/levels-600.generated.ts
|
||||
web-template/ 主站对接
|
||||
tools/ 关卡导出脚本
|
||||
```
|
||||
见 [`web-template/主站对接说明.md`](web-template/主站对接说明.md)
|
||||
|
||||
## 源项目
|
||||
|
||||
`/Users/liuyufei/tfrh/主站文件/主站`
|
||||
|
||||
## 后续
|
||||
|
||||
- 运行 `tools/export_all.sh` 导出 Levels1000、Levels10000 等
|
||||
- 将 Unity 动画改为 Cocos Animation / Spine
|
||||
- 用 Tiled 导出真实地块填充 `LevelConfig.ground`
|
||||
|
||||
Reference in New Issue
Block a user