fix(hero): 防止移动组件在特定情况下反向移动
在计算新位置后添加方向检查,确保英雄不会朝与输入方向相反的方向移动,避免可能的卡顿或位置异常。
This commit is contained in:
@@ -221,6 +221,11 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
|||||||
newX = direction > 0 ? Math.min(newX, stopAtX) : Math.max(newX, stopAtX);
|
newX = direction > 0 ? Math.min(newX, stopAtX) : Math.max(newX, stopAtX);
|
||||||
}
|
}
|
||||||
newX = this.clampXByAllies(view.ent, model.fac, move.baseY, currentX, newX, direction);
|
newX = this.clampXByAllies(view.ent, model.fac, move.baseY, currentX, newX, direction);
|
||||||
|
if (direction > 0) {
|
||||||
|
newX = Math.max(currentX, newX);
|
||||||
|
} else {
|
||||||
|
newX = Math.min(currentX, newX);
|
||||||
|
}
|
||||||
if (Math.abs(newX - currentX) < 0.01) {
|
if (Math.abs(newX - currentX) < 0.01) {
|
||||||
view.status_change("idle");
|
view.status_change("idle");
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user