玩家扮演不同器官,需要异步信号传递
05/033 浏览综合
嗒啦啦:
关键决策:clientCloud 做持久化队列,因为不同玩家扮演不同器官,需要异步传递。结合截图中红框标注的"扮演"按钮,整个测试验证流程就很清晰了:
修正后的架构:基于 clientCloud 的器官间信号管道数据结构设计每个器官有一个独立的 clientCloud 队列 key:Cloud Key 写入方 消费方
─────────────────────────────────────────────────────
pending_oral 投喂动作 口腔关卡
pending_stomach 口腔出口 胃关卡
pending_small_intestine 胃出口 小肠关卡
pending_large_intestine 小肠出口 大肠关卡
digest_log 各器官出口 大脑监控室(图鉴+指标)
每条食物记录的格式:{
foodKey: "spinach", -- 对应 FEED_FOODS 的 key
category: "veggie", -- 食物类别
feederId: 1051336128, -- 谁投喂的
timestamp: 1714700000, -- 投喂时间
processedLevel: 0, -- 碎裂次数(口腔处理后+1)
chemTags: ["fiber","iron"] -- 化学标签(酶解后变化)
}
完整信号链路┌─ 投喂(Leaderboard)
│ 玩家点"投喂菠菜"
│ → clientCloud.Set("pending_oral", 追加菠菜)
│ → clientCloud.Set("digest_log", 追加记录) ← 大脑立刻知道吃了什么
│
├─ 扮演口腔(点排行榜"扮演 口腔")
│ 关卡启动时:
│ → clientCloud.Get("pending_oral")
│ → 取出菠菜 → Enemy.Spawn("spinach_veggie")
│ → 玩家操作塔防处理食物(碎裂/唾液淀粉酶)
│ 关卡食物出口时:
│ → clientCloud.Set("pending_stomach", 追加已处理的菠菜)
│ → clientCloud.Set("pending_oral", 移除已消费的菠菜)
│
├─ 扮演胃(点排行榜"扮演 胃")
│ → clientCloud.Get("pending_stomach")
│ → 取出口腔传来的菠菜 → 生成NPC
│ → 胃酸+胃蛋白酶处理
│ → 出口 → clientCloud.Set("pending_small_intestine", ...)
│
├─ 扮演小肠 → 扮演大肠(同理)
│ → 每个环节产生营养吸收
│ → clientCloud.Set("digest_log", 追加吸收记录)
│ → 指标变化写入:bloodSugar +X, bloodFat +Y ...
│
└─ 大脑监控室(随时可查看)
→ clientCloud.Get("digest_log") → 食物图鉴更新
→ clientCloud.Get 各指标 → 血糖/血脂/血钠仪表变化
关键设计问题1. 队列的读写并发同一个玩家不会同时扮演两个器官,所以不存在并发写冲突。流程是串行的:投喂 → 退出排行榜 → 扮演口腔 → 打完 → 回排行榜 → 扮演胃 → ...
clientCloud 的 Get → 修改 → Set 在单用户场景下是安全的。2. 食物类型映射(MVP 方案)同意用类别映射做 MVP。60 种食物映射到 5 个 EnemyType 模板:FEED_FOODS.key → EnemyType 模板 → 视觉差异
───────────────────────────────────────────────────────
spinach (菠菜) → veggie_food → 绿色 + 🥬
apple (苹果) → fruit_food → 红色 + 🍎
steak (牛排) → meat_food → 棕色 + 🥩
rice (米饭) → staple_food → 黄色 + 🍚
candy (糖块) → snack_food → 粉色 + 🍬
同类别食物共享 HP/速度/chemTag,用 emoji + 名字标签做视觉区分。3. 指标影响时机两个写入点:时机写什么为什么投喂时digest_log(图鉴)大脑"知道吃了什么"不需要等消化完器官出口时血糖/血脂/血钠营养吸收发生在消化过程中,尤其是小肠这符合真实生理:大脑通过感官(口腔味觉)立刻知道吃了什么,但血糖变化要等小肠吸收后才体现。4. 用排行榜"扮演"按钮做测试闭环截图中红框的四个"扮演"按钮正好是完整测试路径:测试步骤:
1. 点"投喂" → 选菠菜 → Toast "已投喂菠菜"
2. 点"扮演 口腔" → 进关卡 → 看到菠菜NPC出现 ✓
3. 打完口腔 → 回排行榜
4. 点"扮演 胃" → 进关卡 → 看到口腔传来的菠菜 ✓
5. 随时进大脑监控室 → MONITOR-G显示"菠菜 ✓" → 血糖等指标变化 ✓



