游戏机制练习簿:拖动阈值与返回起点后的状态——阈值9与返回原点的输入(案例12)
按住指针后轻微抖动通常不必立即当成拖动,但一旦越过阈值开始拖动,回到起点也不应该自动变回普通点击。这里的状态取决于本次按住期间的历史,而不只看最后的位置。
以下是一组输入完整的独立案例。先读清规则,再按时间或操作顺序记录中间状态;遇到与预期不同的结果时,检查首次出现差异的位置。案例使用明确限定的教学模型,不假定所有作品都采用相同的处理方式。
规则和原始数据
按下点固定,距离平方达到阈值平方时启动拖动,等号包含在内。状态在本次按住期间保持,抬起时根据是否曾触发输出点击或拖动结束;忽略设备采样之间的未观测路径。
按下点[-3, 2],阈值9,最后一个采样后抬起 [[-3, 2], [5, 2], [6, 2], [-3, 2], [-9, 9], [-14, -1], [-2, 6], [5, 7], [-1, -8], [-7, 4], [-3, 13], [-3, 2]]
逐步记录
采样1在(-3,2),相对按下点偏移(0,0)、距离平方0,阈值平方81;状态仍为点击候选。
采样2在(5,2),相对按下点偏移(8,0)、距离平方64,阈值平方81;状态仍为点击候选。
采样3在(6,2),相对按下点偏移(9,0)、距离平方81,阈值平方81;状态本次开始拖动。
采样4在(-3,2),相对按下点偏移(0,0)、距离平方0,阈值平方81;状态保持拖动。
采样5在(-9,9),相对按下点偏移(-6,7)、距离平方85,阈值平方81;状态保持拖动。
采样6在(-14,-1),相对按下点偏移(-11,-3)、距离平方130,阈值平方81;状态保持拖动。
采样7在(-2,6),相对按下点偏移(1,4)、距离平方17,阈值平方81;状态保持拖动。
采样8在(5,7),相对按下点偏移(8,5)、距离平方89,阈值平方81;状态保持拖动。
采样9在(-1,-8),相对按下点偏移(2,-10)、距离平方104,阈值平方81;状态保持拖动。
采样10在(-7,4),相对按下点偏移(-4,2)、距离平方20,阈值平方81;状态保持拖动。
采样11在(-3,13),相对按下点偏移(0,11)、距离平方121,阈值平方81;状态保持拖动。
采样12在(-3,2),相对按下点偏移(0,0)、距离平方0,阈值平方81;状态保持拖动。
抬起时输出“拖动结束”;末点就是按下点,但决定因素是整个按住期间的状态。
交叉核对与应用
记录截至每个采样的最大距离平方,与阈值比较来独立恢复状态。尤其检查超过阈值后返回原点的样本,最终位移为零并不表示从未拖动。
采样点之间实际走过的轨迹在本例中不可见,因此快速移出又移回而没有留下中间采样的运动,不能仅凭这些数据推断。这个限制属于观测条件,不应通过猜测路径来补出拖动事件。
建议保留原始输入、每一步状态和最终输出,再只改变一个条件做对照。重点检查空输入、相等边界、重复请求以及先后顺序;把规则约定、计算过程和显示表现分别核对,比只比较最后一个数字更容易找到原因。
