refactor(hero): 优化英雄动画状态同步逻辑

移除测试用的英雄成长模拟数据,修复动画状态与实际表现不一致的问题

1. 重构HeroSpine的idle/move方法,新增返回值标记动画是否被拦截
2. 重构HeroViewComp的status_change逻辑,仅在动画切换成功时更新状态
3. 重构HeroAnmComp的动画播放逻辑,修复动画结束后默认播放的异常
4. 移除SingletonModuleComp中的测试用英雄成长数据
5. 简化MoveSystem中状态切换的冗余判断逻辑
This commit is contained in:
panFD
2026-09-12 14:04:18 +08:00
parent 1fc91dce21
commit d951896799
5 changed files with 63 additions and 37 deletions

View File

@@ -131,7 +131,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
model.is_atking = false;
if (model.fac === FacSet.HERO) {
this.processHeroQueue(e, model, move, view);
} else if (view.status !== "atk") {
} else {
view.status_change("idle");
}
return;
@@ -146,7 +146,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
/** 无敌人:停止移动,等待战斗结束结算 */
this.clearCombatTarget(model);
model.is_atking = false;
if (view.status !== "atk") view.status_change("idle");
view.status_change("idle");
}
/** 渲染层级重排(双阵营统一处理) */
@@ -181,7 +181,7 @@ export class MoveSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
view.node.setPosition(targetX, view.node.position.y, 0);
}
view.scale = 1;
if (view.status !== "atk") view.status_change("idle");
view.status_change("idle");
return;
}