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