角色翻身后位置跳动,有时并非移动系统出错,而是绘图锚点与图片左上角混淆。固定世界锚点后,水平翻转会改变左右边界相对锚点的距离。

下面是一份输入完整的独立练习。先明确规则和端点约定,再逐项推演;可以遮住计算结果自行记录,出现差异时从第一处不同查起。每项输入都是本例设定,不代表所有游戏采用同一套规则。

本例规则与输入

图片是宽高确定的连续矩形,局部锚点坐标从左上角计算;只做水平镜像,不改变世界锚点,也不裁掉透明区域。所有区间按几何边界描述,不讨论像素中心的半格约定。

图片37×46,局部锚点(0,35) [[10, -26], [28, 9], [22, -14], [-17, 20], [-17, 24], [5, 9], [-22, 8]]

过程记录

锚点(10,-26):正常边界[10, -61, 47, -15],水平翻转后[-27, -61, 10, -15];左边界移动-37,但锚点(10,-26)与矩形尺寸都不变。

锚点(28,9):正常边界[28, -26, 65, 20],水平翻转后[-9, -26, 28, 20];左边界移动-37,但锚点(28,9)与矩形尺寸都不变。

锚点(22,-14):正常边界[22, -49, 59, -3],水平翻转后[-15, -49, 22, -3];左边界移动-37,但锚点(22,-14)与矩形尺寸都不变。

锚点(-17,20):正常边界[-17, -15, 20, 31],水平翻转后[-54, -15, -17, 31];左边界移动-37,但锚点(-17,20)与矩形尺寸都不变。

锚点(-17,24):正常边界[-17, -11, 20, 35],水平翻转后[-54, -11, -17, 35];左边界移动-37,但锚点(-17,24)与矩形尺寸都不变。

锚点(5,9):正常边界[5, -26, 42, 20],水平翻转后[-32, -26, 5, 20];左边界移动-37,但锚点(5,9)与矩形尺寸都不变。

锚点(-22,8):正常边界[-22, -27, 15, 19],水平翻转后[-59, -27, -22, 19];左边界移动-37,但锚点(-22,8)与矩形尺寸都不变。

翻转前后左边界之差恒为2×0-37=-37。

复核与实际应用

把原矩形四个角相对锚点的横向偏移取反,再加回世界锚点,可以独立得到翻转后的边界。两种状态应宽高相同,世界锚点始终不动。

当锚点恰在水平中心时,两种方向的外接矩形相同;偏离中心时,边界变化反而是正确镜像结果。若角色脚底必须贴地,垂直锚点的约定也需要一致,水平翻转不应修改它。

练习结束后,保留输入、每一步的中间状态和最终结果。可以仅修改一个边界输入,再比较变化来自哪条规则;不要同时改动多个条件后只凭最终画面判断。若实际作品表现不同,应先确认它使用的时间、坐标或结算约定,再决定是否属于异常。