游戏机制详解:变速读条的剩余工作量与完成时刻——97单位动作的十二段速度变化(实例01)
施放或加工速度中途改变时,剩余工作量和剩余秒数不是同一个量。先记录已完成工作,再按当前速度推进,可以解释为什么提速后的结束时刻改变。
下面是一组独立的虚构游戏输入与逐步结果。先记录单位、编号和端点是否包含,再尝试自己推算,最后对照第一处差异。所有结论都以本例规则为前提;其他作品采用不同约定时,应按它自己的说明重新计算。
本例规则与数据
动作需要固定整数工作量,每段给出持续时间和每单位时间完成的工作。速度为正,工作连续累积;到达总需求立即完成,段内完成时刻用分数表示,此后不再累积。每段速度在段内恒定。
总需求97,每段[持续拍数,每拍工作] [[8, 5], [8, 4], [2, 2], [6, 3], [2, 1], [7, 5], [8, 5], [6, 3], [6, 4], [2, 2], [4, 5], [8, 3]]
过程记录
从0到8,速度5工作量每拍,原完成0,本段最多可增加40,结算完成40,剩余57,尚未完成。
从8到16,速度4工作量每拍,原完成40,本段最多可增加32,结算完成72,剩余25,尚未完成。
从16到18,速度2工作量每拍,原完成72,本段最多可增加4,结算完成76,剩余21,尚未完成。
从18到24,速度3工作量每拍,原完成76,本段最多可增加18,结算完成94,剩余3,尚未完成。
从24到26,速度1工作量每拍,原完成94,本段最多可增加2,结算完成96,剩余1,尚未完成。
从26到33,速度5工作量每拍,原完成96,本段最多可增加35,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
从33到41,速度5工作量每拍,原完成97,本段最多可增加40,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
从41到47,速度3工作量每拍,原完成97,本段最多可增加18,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
从47到53,速度4工作量每拍,原完成97,本段最多可增加24,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
从53到55,速度2工作量每拍,原完成97,本段最多可增加4,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
从55到59,速度5工作量每拍,原完成97,本段最多可增加20,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
从59到67,速度3工作量每拍,原完成97,本段最多可增加24,结算完成97,剩余0,实际完成时刻131/5,其后不再累积。
观察结束于67拍,完成97/97,已于131/5拍结束动作。
独立核对与实际应用
把每段速度乘持续时间形成工作面积,逐段求累计量;首次跨过总需求的段内,再用剩余工作除该段速度求偏移。已完成量始终不超过需求。
这里不含暂停、取消、初始进度和速度上限。若实际游戏在变速时重新计算整条进度,结果可能不同。观察百分比变化时要检查计量单位,不能直接把工作剩余数当作还要等待同样数量的秒。
测试时先保留输入和中间状态,再只改变一个条件。空状态、正好相等、重复出现和最后一步都值得单独检查。若最终结果不符,应从第一处偏差查起,而不是在末尾随意增加补偿让数字表面一致。