这份独立练习关注镜头跟随的静止区。它提供明确的虚构规则和一段完整记录,适合先自己判断、再核对每一步。所有数据只用于学习机制,不代表任何具体产品的实现;实际规则有变化时,需要重新建立记录。
本例规则与输入
只看水平一维,初始镜头中心-9,静止区为相对镜头中心[-7,7],边界包含在内。角色超出右边界时镜头只移到角色减7,超出左边界时只移到角色加7,否则不动。
角色依次到达:-5,3,-5,12,24,35,32,46,53
记录方法
角色移动时镜头可能先不动,等角色离开画面中的允许区域才开始跟随。镜头位置与角色位置因此是两个要分开记录的量。
每一步先用旧镜头计算角色的屏幕偏移,只把超出静止区的部分补回。角色突然反向时,镜头无需立刻反向移动同样的距离。
逐条核对
第1步角色在-5,旧镜头中心-9,原偏移4;镜头保持,新中心-9,最终屏幕偏移4。
第2步角色在3,旧镜头中心-9,原偏移12;镜头移动5,新中心-4,最终屏幕偏移7。
第3步角色在-5,旧镜头中心-4,原偏移-1;镜头保持,新中心-4,最终屏幕偏移-1。
第4步角色在12,旧镜头中心-4,原偏移16;镜头移动9,新中心5,最终屏幕偏移7。
第5步角色在24,旧镜头中心5,原偏移19;镜头移动12,新中心17,最终屏幕偏移7。
第6步角色在35,旧镜头中心17,原偏移18;镜头移动11,新中心28,最终屏幕偏移7。
第7步角色在32,旧镜头中心28,原偏移4;镜头保持,新中心28,最终屏幕偏移4。
第8步角色在46,旧镜头中心28,原偏移18;镜头移动11,新中心39,最终屏幕偏移7。
第9步角色在53,旧镜头中心39,原偏移14;镜头移动7,新中心46,最终屏幕偏移7。
结果及另一种检查
最后镜头中心46,角色相对中心偏移7;每步结果都处于允许的静止区内。
反向复核时,从旧镜头出发逐格追上角色,直到角色刚好回到允许区即可停止。若角色原本就在区内,任何多余镜头移动都不符合“最少跟随”的要求。
练习建议
动手时,把纸分成输入、操作前状态、操作后状态三列,先不要看最后答案。出现差异后从第一条不同的记录开始检查,而不是只改末尾数字。若第一处分歧还没解释清楚,继续算往往只会把同一个错误传到后面。记录单位、正负方向和是否包含边界,也能让别人复核你的过程。
复习时只改一个条件,例如改一条事件、一个初始值或一次记录,先预测哪些后续行会受影响,再重新计算。把保持不变的部分也写下来,才能区分真正的机制变化与偶然的数字变化。练习完成后,可尝试用另一种办法核对总量、边界或最终状态;两种方法一致,比只重复原来的运算更有帮助。
