跳到主要内容

切后台后的对局恢复

玩家回来后能认出离开时的局面,并自己决定什么时候继续。对局时间采用模拟时间,系统时钟变化、切后台与暂停等待都不推进战斗。

状态转换​

当前状态输入动作与新状态
引导中或进行中收到切后台信号停止推进时钟与接收棋盘输入,取消未提交的拖动,保存最近已提交局面
后台冻结回到前台或冷启动读取有效快照显示棋盘和「继续对局」,保持冻结
等待继续点击继续原子消耗本次恢复动作,回到原引导步骤或下一模拟 tick
等待继续再次切后台或重复进入保持冻结,仍只有一个继续入口
已结算切后台、返回或冷启动恢复结算视图,读取已保存结果和奖励状态
任何恢复入口无快照、读失败、版本不支持或数据不合法给出「此对局无法继续」和重新开局入口,已提交的进度与奖励保留

保存合同​

每次提交合法棋盘操作、引导动作、模拟 tick 和结算时,把对应的可恢复状态一并提交。切后台时尝试再保存一次。进程被回收时读取最后一次成功写入的数据,界面只展示已提交局面。

  • 标识。快照结构版本、关卡配置版本、关卡 ID、runId、递增修订号和玩家标识。
  • 局面。引导或对局阶段、已完成的 tick、棋盘、后备炮、基地 HP、存活敌人的路线、剩余 HP 和截止 tick。波次生成位置从已完成的 tick 与配置重建。
  • 结算。快照存结果引用,实际进度和奖励从已提交的结算或账本读取。结算引用失效时返回最近有效的持久化结果。
  • 写入。按 runId 保护更新顺序,旧修订拒绝覆盖新修订。保存失败时保留最后一次有效提交,提示可恢复点可能略早。新开局切换当前 runId,旧局异步写入不能覆盖新局。
  • 版本。恢复绑定原配置版本。若应用无法读该版本,进入无法继续分支。持续记录失败原因,便于定位升级后的恢复问题。

进行中第 22 tick 代表已经处理过 22 秒那一轮攻击。继续后从第 23 tick 推进,未提交的拖动取消,距离下一个 tick 重新计一秒。前台回调本身只更新界面状态。

可直接交给 AI 的需求​

将本页的规则和验收表与下面的指令一起发给 AI。

给合成防守增加暂停与恢复。以已提交 tick、棋盘和配置版本为快照核心,
绑定 runId 与递增修订号。切后台冻结,返回后等待玩家点击继续。
进程回收时使用最后一次有效快照。已结算状态只读取既有结果和账本。
请实现可注入的生命周期、时钟和持久化测试入口,并用验收表重放。

验收用例​

编号给定当则
R01A2 二级,第 22 tick 后 A 路敌人剩 3 HP切后台 30 秒,再回来仍显示 tick 22、敌人 3 HP。点击继续并推进一秒,tick 23 击破敌人,基地血量不变
R02最后一次持久化成功的是 tick 48切后台被回收后冷启动恢复 tick 48 棋盘、B 路敌人已移除,等待继续
R03玩家拖动 A2 但尚未落下切后台再回来预览消失,A2 仍在原格
R04同一局同时收到两次前台事件对继续按钮双击只恢复一次,时钟只启动一份
R05旧配置已经不可读,历史奖励已入账尝试恢复展示重新开局入口,历史奖励余额不变
R06先提交修订 7,修订 6 较晚返回冷启动读取修订 7,不退回旧局面

微信小游戏前台事件 · 微信小游戏后台事件