feat: integrate login flow, lobby UI and bitmap font resources

This commit is contained in:
2026-09-06 13:46:57 +08:00
parent e1bcfd91ec
commit 842c68ef55
141 changed files with 11279 additions and 1717 deletions
+1
View File
@@ -12,6 +12,7 @@
## 登录 / 账号
### `player_login` · route=agent · C→S 请求 + S→C 响应
- 接收路由补充(2026-09-06 实包核对):C→S 仍为 `agent/player_login`;S→C 可以是 `agent`、`room` 或 `platform` 下的 `player_login`。原工程 `12_Logic.js:238-260` 按 rpc 解除登录等待,再把这三类平台路由交给 `Net[rpc]`。已实测短信验证码失败为 `room/player_login`,data 为 `{msg:"短信验证码不正确",state:-1,time:0}`;必须解除等待并交给登录失败处理,不能因响应 route 与发包 route 不同而忽略。
- 场景:连接建立后 `onopen` 自动发送;断线重连、切服后重发(12_Logic.js:35、:61 构造,09_Net.js:122 `Send_login` 注入)。
- 请求字段(C→S):
| 字段 | 类型 | 说明 |
@@ -0,0 +1,37 @@
# 登录后大厅第一批接线验收
日期:2026-09-06。分支:`codex/post-login-lobby`。工程:`cocoscreator_projects/YouleNexus`。
## 已接入
- 登录成功切换到 PlatformLobby;复用已迁移的大厅、顶部信息和公告菜单 prefab,保持原有 1600×720 资源布局。
- 登录响应进入 PlatformStore,界面读取当前玩家昵称、ID、头像、房卡、星星、任务提示;必需字段缺失直接报错。
- 个人资料、公告分页/滚动/链接、设置及退出登录。公告频率读取远程配置;客服信息和星星名称读取同一配置来源。
- 公告外链遵循原生 settings/WVJB browser 契约;图片切页释放旧纹理。
- 重复大厅请求复用场景切换;退出清除访客缓存有效期,避免刷新后立即自动登录。
未修改服务器、协议路由或数据包结构。场景、组件引用和资源元数据由 Cocos MCP/editor 创建与保存。
## 验证
- 本地配置和真实 WebSocket 服务完成 Loading → Login → Lobby;响应、Store、界面的玩家 ID 和房卡一致。
- Creator 预览关闭当前连接后,观察到 close → reconnecting → open → message,最终恢复 logged-in / outside,保持 PlatformLobby、无终止错误、无重复公告,Lobby 场景事件仍仅一次。
- 并发调用两次 showLobby,大厅子节点数量保持 6,未重复挂载。
- 浏览器实际检查公告、大厅、个人资料、设置;退出登录后停留登录页。
- 完整前端回归:715 / 715 通过,0 失败。
- 仓库 TypeScript 编译器检查 Creator 脚本通过;import-boundaries 检查通过。
- 测试改写的两份 out/legacy-migration 输出已恢复。
运行命令(在 cocoscreator_projects):
```powershell
node scripts/run-framework-tests.mjs
node node_modules/typescript/bin/tsc -p YouleNexus/tsconfig.json --noEmit --ignoreDeprecations 6.0 --skipLibCheck --target ES2020 --types node --strict
node scripts/check-import-boundaries.mjs
```
## 尚未接入
任务领取、战绩列表、商城支付等业务 RPC,以及创建/加入房间和子游戏运行。相关入口显示明确提示;加入房间仅接通面板开关。设置中的音乐/音效保存原配置键,本批未新增音频资源播放。未宣称这些业务完成联调。
原生外链通过契约单测,尚未在真实原生容器验证。Creator 内置旧编译器的诊断与仓库 TypeScript 版本不兼容,因此以上类型验证使用仓库编译器。资源依赖扫描器会将节点 ID、组件 ID 和属性名误判为 UUID;实际序列化资源引用已由编辑器加载并在预览使用。