有些平台允许角色从下方穿上去,却会承接从上方落下的角色。只比较最后位置会把两种情况混淆,检查运动方向和穿越范围才能表达单向规则。
本篇给出一份完整且可重复的虚构游戏记录。先读清规则,再尝试自行推演输入,最后逐项对照中间状态。不同作品可以选择不同约定,只有在相同前提下才能比较结果;不要只看最终数字相同就认为过程正确。
纵坐标向上增大,平台是给定高度的水平线,横向范围假定始终重叠。脚底从旧位置到新位置线性移动;只有下降且从平台上方或线上到达下方或线上,并且没有穿透指令时,才停在平台高度。
平台高度5 [[8, 1, False], [2, 9, False], [5, 3, False], [7, 5, False], [5, 5, False], [8, 1, True], [1, 3, True], [0, -3, True], [-1, 0, True], [12, 2, False], [-3, 2, False], [13, 11, False]]
脚底8到1,穿透标志False,移动方向下降;承接True,接触比例3/7,最后高度5。
脚底2到9,穿透标志False,移动方向上升;承接False,接触比例None,最后高度9。
脚底5到3,穿透标志False,移动方向下降;承接True,接触比例0,最后高度5。
脚底7到5,穿透标志False,移动方向下降;承接True,接触比例1,最后高度5。
脚底5到5,穿透标志False,移动方向静止;承接False,接触比例None,最后高度5。
脚底8到1,穿透标志True,移动方向下降;承接False,接触比例None,最后高度1。
脚底1到3,穿透标志True,移动方向上升;承接False,接触比例None,最后高度3。
脚底0到-3,穿透标志True,移动方向下降;承接False,接触比例None,最后高度-3。
脚底-1到0,穿透标志True,移动方向上升;承接False,接触比例None,最后高度0。
脚底12到2,穿透标志False,移动方向下降;承接True,接触比例7/10,最后高度5。
脚底-3到2,穿透标志False,移动方向上升;承接False,接触比例None,最后高度2。
脚底13到11,穿透标志False,移动方向下降;承接False,接触比例None,最后高度11。
十二次独立位移中有4次被平台承接。
用线段与水平线相交的参数核对接触时刻,再额外检查方向和穿透标志。站在原高度不动不算本例的新穿越,上升交点也不应被当作落地。
这里忽略角色宽度、移动平台、斜坡和其他碰撞体,只说明一条判定规则。接触参数表示本次位移中的比例,不是现实时间秒数;若一次移动途中还有别的障碍,应另外比较哪个接触先发生。
练习时可以只改动一个输入,再观察哪一步首次出现差异。对等于门槛、重复请求、空集合和最后一步分别留一份记录;如果发现异常,应先回到单位、顺序和边界约定,避免用额外补偿掩盖前面已经发生的错误。
以便获取最新的优惠活动以及最新资讯!