这份独立练习关注镜头跟随的静止区。它提供明确的虚构规则和一段完整记录,适合先自己判断、再核对每一步。所有数据只用于学习机制,不代表任何具体产品的实现;实际规则有变化时,需要重新建立记录。

本例规则与输入

只看水平一维,初始镜头中心15,静止区为相对镜头中心[-10,10],边界包含在内。角色超出右边界时镜头只移到角色减10,超出左边界时只移到角色加10,否则不动。

角色依次到达:32,27,39,36,40,51,66,55,40

记录方法

角色移动时镜头可能先不动,等角色离开画面中的允许区域才开始跟随。镜头位置与角色位置因此是两个要分开记录的量。

每一步先用旧镜头计算角色的屏幕偏移,只把超出静止区的部分补回。角色突然反向时,镜头无需立刻反向移动同样的距离。

逐条核对

第1步角色在32,旧镜头中心15,原偏移17;镜头移动7,新中心22,最终屏幕偏移10。

第2步角色在27,旧镜头中心22,原偏移5;镜头保持,新中心22,最终屏幕偏移5。

第3步角色在39,旧镜头中心22,原偏移17;镜头移动7,新中心29,最终屏幕偏移10。

第4步角色在36,旧镜头中心29,原偏移7;镜头保持,新中心29,最终屏幕偏移7。

第5步角色在40,旧镜头中心29,原偏移11;镜头移动1,新中心30,最终屏幕偏移10。

第6步角色在51,旧镜头中心30,原偏移21;镜头移动11,新中心41,最终屏幕偏移10。

第7步角色在66,旧镜头中心41,原偏移25;镜头移动15,新中心56,最终屏幕偏移10。

第8步角色在55,旧镜头中心56,原偏移-1;镜头保持,新中心56,最终屏幕偏移-1。

第9步角色在40,旧镜头中心56,原偏移-16;镜头移动-6,新中心50,最终屏幕偏移-10。

结果及另一种检查

最后镜头中心50,角色相对中心偏移-10;每步结果都处于允许的静止区内。

反向复核时,从旧镜头出发逐格追上角色,直到角色刚好回到允许区即可停止。若角色原本就在区内,任何多余镜头移动都不符合“最少跟随”的要求。

练习建议

动手时,把纸分成输入、操作前状态、操作后状态三列,先不要看最后答案。出现差异后从第一条不同的记录开始检查,而不是只改末尾数字。若第一处分歧还没解释清楚,继续算往往只会把同一个错误传到后面。记录单位、正负方向和是否包含边界,也能让别人复核你的过程。

复习时只改一个条件,例如改一条事件、一个初始值或一次记录,先预测哪些后续行会受影响,再重新计算。把保持不变的部分也写下来,才能区分真正的机制变化与偶然的数字变化。练习完成后,可尝试用另一种办法核对总量、边界或最终状态;两种方法一致,比只重复原来的运算更有帮助。