3.4 KiB
3.4 KiB
projects/ —— 旧版 HTML5 前端
前端模板 Game_Surface_3 与子游戏
四层结构(自底向上):
- 引擎层 ——
js/gameabc.min.js(gameabc 精灵引擎)+ Spine(spine-canvas.js/SpineMgr.js)+ Canvas 渲染;提供触屏/定时器/资源/WebSocket 底层回调。 - 桥接层 ——
js/gamemain.js:统一事件总线,把引擎回调分发到平台 UI、子游戏Game_Modify、对战逻辑。 - 平台层 ——
js/00_Surface/*(12 个文件):登录、大厅、房间、聊天、社交、网络、资源、排行、任务等通用能力。子游戏间几乎不变。 - 子游戏层 ——
js/01_SubGame/*(3 个文件):只实现本游戏的对局逻辑与房间 UI。
平台层关键文件(js/00_Surface/): 02_Const.js(ConstVal/AppList/路由表)、04_Data.js(GameData 全局态)、09_Net.js(Net._SendData() 收发分发)、12_Logic.js(Logic 连接/重连/分发编排)、07_Desk.js(Desk 房间状态机)、06_Player.js(C_Player/Player 数据结构)、11_GameUI.js(平台 UI)、00_minhttp.js(WebSocket 底层封装)。
子游戏层(js/01_SubGame/,开发子游戏 = 改这 3 个文件 + 美术数据):
00_SubGame_Config.js——Game_Config(房间数、气泡位置、分享、调试开关)01_SubGame_modify.js——Game_Modify/gameCombat(对局实现 + 房间/胜负 UI)02_SubGame_Input.js—— 平台回调钩子(模板里是桩,子游戏覆写为真实逻辑)- 另需补充:
gamemain.js(扩展对局初始化)、专用算法模块(牌型/出牌等)、美术数据output/gameabc_data.min.js。
状态归属: 平台层维护 Desk(房间/座位)、C_Player(自己)、GameData(连接/资产);子游戏维护对局态(手牌、出牌历史、轮次、分数)于自身命名空间,并需可序列化为 deskinfo 以支持断线重连。
Cocos 迁移工作台:场景/资源创建与保存走 MCP(不要用户手动保存)
迁移到
cocoscreator_projects/YouleNexus期间踩过的坑,供后续在此工作区操作时参考。
场景与资源(.scene / .prefab / .anim / .meta)的创建和保存必须由 Claude 通过 MCP 工具完成,全程不要求用户手动 Ctrl+S。 否则编辑器重启后,停留在临时场景 scene-2d 上建的内容全部丢失。
- 先建场景再建内容:用
cocos_scene { action: "create", sceneName: "Xxx", savePath: "db://assets/scenes" }建新场景(自动建 Camera + Canvas 并打开),再在其 Canvas 下建节点 / 实例化 prefab。有db://路径的场景才能登记进 build settings、被 content 模式截图、并随工程持久化。 - 保存当前场景:
cocos_scene { action: "save" }(无参数,保存到当前场景已有路径)。save不接受savePath/sceneName,带了不生效——曾误以为save能另存为,结果返回 success 却没落盘。 - 打开已有场景:
cocos_scene { action: "open", scenePath: "db://assets/scenes/Xxx.scene" }。 - 实例化 prefab:
cocos_prefab { action: "instantiate", prefabPath: "db://.../X.prefab", parent: "Canvas" }。 - 编辑 prefab 用
cocos_prefab的edit_enter→ 改组件 →edit_save→edit_exit,改完必须edit_exit回到场景,别停在 prefab 编辑态。