This commit is contained in:
2026-04-25 11:22:03 +08:00
parent 31f350d499
commit a6029639b0
12 changed files with 518 additions and 63 deletions

View File

@@ -0,0 +1,27 @@
# 大鱼吃小鱼方向触控操作优化说明
## 背景
当前大鱼运行时使用左下固定虚拟摇杆,玩家必须点到摇杆区域才能移动。移动端实际体验应改为屏幕任意位置触控:第一次触点只建立方向原点,不直接产生移动;后续触点相对原点形成方向向量,角色按恒定速度朝该方向行动。
## 交互规则
1. 玩家在玩法舞台内按下时,记录第一个触点坐标为本次操作原点。
2. 按下瞬间提交 `{ x: 0, y: 0 }`,保证一开始玩家不动。
3. 手指/鼠标移动后,用“当前触点 - 原点”的向量计算方向。
4. 输入只表达方向,不表达速度;超过死区后归一化为单位方向向量。
5. 松开或取消触控后,清空操作原点并提交 `{ x: 0, y: 0 }`
6. 前端继续定时提交当前方向,即使没有玩家输入也提交零向量,让后端或本地直达局持续推进世界 tick。
## 本地直达局边界
- `/big-fish` 的本地占位局必须在玩家未操作时继续移动野生对象。
- 玩家速度保持恒定,只由方向决定移动方向。
- 野生对象使用确定性游动规则,避免直达入口看起来像静态截图。
## 验收口径
1. 在舞台任意位置按下时玩家不立即移动。
2. 按住并拖动后,玩家朝拖动方向恒速移动。
3. 松开后玩家停止。
4. 不操作时野生对象仍会持续游动。

View File

@@ -0,0 +1,25 @@
# 大鱼吃小鱼玩法直达路由说明
## 背景
现有前端已经包含 `BigFishRuntimeShell`,正式链路从创作中心或作品卡启动后端运行局。为了便于快速验收玩法手感,需要补一个不依赖后端会话的直达入口。
## 路由设计
- `/big-fish`:进入大鱼吃小鱼玩法直达页。
- 路由挂在 `src/routing/appRoutes.tsx`,与 `/puzzle` 一样走现有轻量路由解析层,不新增独立路由系统。
- 每个玩法仅保留一个直达入口,避免 `/play` 这类重复路径造成维护分叉。
## 运行态边界
- 直达页复用 `BigFishRuntimeShell`,不复制运行时 UI。
- 初始快照由前端本地构造,背景使用内联 SVG 占位图。
- 摇杆输入在本地推进角色位置、碰撞与成长等级,仅用于直达体验。
- 该入口不改变正式 `api-server` 运行局、作品发布、资产生成和 SpacetimeDB 持久化链路。
## 验收口径
1. 浏览器访问 `/big-fish` 后直接显示竖屏大鱼吃小鱼舞台。
2. 左下摇杆可移动玩家实体。
3. 玩家碰到不高于自身等级的实体后成长,并在事件日志显示成长结果。
4. 左上返回按钮在直达页语义为重开当前占位局。

View File

@@ -0,0 +1,26 @@
# 拼图玩法直达路由说明
## 背景
现有前端已经包含拼图运行时组件 `PuzzleRuntimeShell` 和本地运行时 `puzzleLocalRuntime`,但只能从平台创作中心、作品卡或拼图广场链路间接进入。为了快速验证玩法交互,需要补一个可直接打开的前端路由。
## 路由设计
- `/puzzle`:进入拼图玩法直达页。
- 路由挂到现有 `src/routing/appRoutes.tsx` 的轻量路由解析层,不引入 React Router也不新增独立路由系统。
## 运行态边界
- 直达页复用 `PuzzleRuntimeShell`,不复制棋盘 UI。
- 初始关卡通过 `startLocalPuzzleRun` 生成,图片使用内联 SVG 占位图。
- 交换、拖动、重开均走 `puzzleLocalRuntime`,保持与现有前端玩法实现一致。
- 该入口仅用于直达体验和调试不改变已发布拼图作品、Agent 创作、拼图广场和后端持久化链路。
## 验收口径
1. 浏览器访问 `/puzzle` 后直接显示全屏拼图画布。
2. 棋盘应显示占位图切片,而不是空白格。
3. 点击两块拼图可以交换;拖动拼图到目标格可以交换位置。
4. 左上返回按钮在直达页语义为重开当前占位关卡。

View File

@@ -1,9 +1,12 @@
# 技术方案
# 技术方案
这一组文档偏技术选型、实现路线和外部产品形态拆解。
## 文档列表
- [BIG_FISH_DIRECTION_TOUCH_CONTROL_2026-04-24.md](./BIG_FISH_DIRECTION_TOUCH_CONTROL_2026-04-24.md):记录大鱼吃小鱼从固定摇杆改为屏幕首触点方向控制,并要求本地直达局在未操作时保持对象运动。
- [BIG_FISH_DIRECT_ROUTE_PLAYGROUND_2026-04-24.md](./BIG_FISH_DIRECT_ROUTE_PLAYGROUND_2026-04-24.md):记录 `/big-fish` 大鱼吃小鱼玩法直达入口,明确复用现有 `BigFishRuntimeShell` 和本地占位运行态的调试边界。
- [PUZZLE_DIRECT_ROUTE_PLAYGROUND_2026-04-24.md](./PUZZLE_DIRECT_ROUTE_PLAYGROUND_2026-04-24.md):记录 `/puzzle` 拼图玩法直达入口,明确复用现有 `PuzzleRuntimeShell` 和本地占位图运行态的调试边界。
- [CUSTOM_WORLD_RESULT_ENTITY_GENERATION_FIX_2026-04-24.md](./CUSTOM_WORLD_RESULT_ENTITY_GENERATION_FIX_2026-04-24.md):记录世界结果页在 Agent 草稿模式下新增场景、新增 NPC 生成成功但结果页字段不可用的根因,并冻结 `api-server` 生成归一化层补齐 profile 字段的修复口径。
- [ADMIN_CONSOLE_SERVICE_DESIGN_2026-04-23.md](./ADMIN_CONSOLE_SERVICE_DESIGN_2026-04-23.md):冻结 Rust `api-server` 内后台管理服务首版方案,明确管理员用户名密码登录、管理员 JWT 鉴权、数据库概览、受控 API 调试台与同源管理页面的落地边界。
- [SPACETIME_MODULE_LIB_RS_SPLIT_EXECUTION_2026-04-23.md](./SPACETIME_MODULE_LIB_RS_SPLIT_EXECUTION_2026-04-23.md):冻结 `server-rs/crates/spacetime-module/src/lib.rs` 的模块地图、二级落位点与迁移顺序,要求后续 SpacetimeDB 主工程改动按对应模块落位,不再继续堆回单大文件。
@@ -158,3 +161,7 @@
- 做实现选型时,优先看这一组。
- 做阶段排期时,把这一组和 `docs/planning/``docs/prd/` 一起看,更容易判断先后顺序。