角色 停止后 切换到idle动画

This commit is contained in:
2025-08-08 13:44:28 +08:00
parent 52ee731e3f
commit 25ed3a009a
8 changed files with 680 additions and 2665 deletions

View File

@@ -28,26 +28,35 @@ export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemU
// 同步状态
if (!shouldStop) { //在攻击范围内停止移动 取消这个判断
if (!shouldStop) { //在攻击范围内停止移动
// if(view.fac==1){
if(view.is_stop||view.is_dead||view.DEBUFF_STUN>0 ||view.DEBUFF_FROST>0) return //停止移动或者死亡不移动
if(view.is_stop||view.is_dead||view.DEBUFF_STUN>0 ||view.DEBUFF_FROST>0) {
view.status_change("idle");
return; //停止移动或者死亡不移动
}
// 新增墓地位置判断,如果已经在墓地则不再移动
if (view.node.position.x === -1000 || view.node.position.x === 1000) {
view.status_change("idle");
return;
}
// 计算移动量
const delta = ((view.speed-view.DEBUFF_SLOW)/3) * this.dt * move.direction;
const newX = view.node.position.x + delta;
view.status_change("move")
// 限制移动范围
if (this.validatePosition(newX, move)) {
view.status_change("move");
view.node.setPosition(newX, view.node.position.y, 0);
} else {
// 当达到目标位置边界时也切换为idle状态
view.status_change("idle");
// 达到边界是永久停止设置moving为false
move.moving = false;
}
}
else{
view.status_change("idle")
view.status_change("idle");
// 因为敌人在面前而暂时停止不设置moving为false保持检查状态
}
this.checkEnemiesInBase(e)