使用ecs系统进行重构

This commit is contained in:
walkpan
2025-01-31 21:50:59 +08:00
parent 6ea3e9504d
commit c5c01c6cf4
18 changed files with 491 additions and 44 deletions

View File

@@ -0,0 +1,22 @@
@ecs.registerSystem()
export class HeroMoveSystem extends ecs.System {
filter(): ecs.IMatcher {
return ecs.allOf(HeroModelComp, HeroViewComp, MoveToComp);
}
update(entities: Hero[]) {
const deltaTime = oops.timer.delta;
entities.forEach(hero => {
// 每个英雄独立计算移动
const move = hero.get(MoveToComp);
const view = hero.get(HeroViewComp);
// 计算移动向量(单个英雄逻辑)
const dir = move.target.subtract(view.node.position).normalize();
const speed = view.speed * deltaTime;
// 更新位置(独立操作)
view.node.position = view.node.position.add(dir.multiplyScalar(speed));
});
}
}