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