# 大鱼吃小鱼方向触控操作优化说明 ## 背景 当前大鱼运行时使用左下固定虚拟摇杆,玩家必须点到摇杆区域才能移动。移动端实际体验应改为屏幕任意位置触控:按住屏幕时不再用“触点相对按下原点”的距离判断方向,而是按固定采样间隔比较“上一次触点位置”和“当前触点位置”的位移方向,角色按恒定速度朝采样方向行动。 ## 交互规则 1. 玩家在玩法舞台内按下时,记录当前触点坐标为采样起点。 2. 按下瞬间提交 `{ x: 0, y: 0 }`,保证一开始玩家不动。 3. 按住期间每 `0.1` 秒采样一次当前触点坐标,并用“当前触点 - 上一次采样触点”的位移计算方向。 4. 输入只表达方向,不表达速度;超过采样死区后归一化为单位方向向量,未超过死区则沿用上一段有效方向。 5. 每次采样完成后,把当前触点写为下一次采样的“上一次位置”。 6. 松开或取消触控后,清空采样状态并提交 `{ x: 0, y: 0 }`。 7. 前端继续定时提交当前方向,即使没有玩家输入也提交零向量,让后端或本地直达局持续推进世界 tick。 ## 本地直达局边界 - 大鱼吃小鱼的最终游玩部分统一放在前端本地 runtime,不再调用后端 start/input/get run 接口。 - 后端只保留 Agent 创作、草稿编译、资产生成、发布和作品列表;不负责移动、碰撞、刷鱼、合成、屏外清理或胜负模拟。 - `/big-fish` 的本地直达局和平台内测试玩法必须共用前端本地 runtime,并在玩家未操作时继续移动野生对象。 - 玩家速度保持恒定,只由方向决定移动方向。 - 野生对象使用确定性游动规则,避免直达入口看起来像静态截图。 ## 验收口径 1. 在舞台任意位置按下时玩家不立即移动。 2. 按住并拖动后,玩家方向来自最近 `0.1` 秒位移,而不是来自按下原点。 3. 松开后玩家停止。 4. 不操作时野生对象仍会持续游动。 ## 资产生成补充口径 - 大鱼实体主图、`idle_float` 和 `move_swim` 动作图都按 RPG 角色资产口径处理:单体完整入镜、中心构图、轮廓清晰、透明背景、无 UI/文字/水印。 - 场地背景只生成环境,不生成规则说明、UI 或巨大主体遮挡;画面元素要少,中央活动区域要大,边缘只保留少量出生区提示。