Java Ashley ECS迭代系统未处理实体族

Java Ashley ECS迭代系统未处理实体族,java,libgdx,Java,Libgdx,不知何故,我无法让迭代系统工作。在更新过程中,我仔细检查是否存在实体,它返回的值大于0。但这应该意味着processEntity会被调用,但它永远不会运行 //... import net.madmenyo.teststuff.AshleyTest.components.MovementComponent; import net.madmenyo.teststuff.AshleyTest.components.PositionComponent; //... public class Move

不知何故,我无法让
迭代系统
工作。在更新过程中,我仔细检查是否存在实体,它返回的值大于0。但这应该意味着
processEntity
会被调用,但它永远不会运行

//...
import net.madmenyo.teststuff.AshleyTest.components.MovementComponent;
import net.madmenyo.teststuff.AshleyTest.components.PositionComponent;
//...

public class MovementSystem extends IteratingSystem {
    private ComponentMapper<PositionComponent> pm;
    private ComponentMapper<MovementComponent> mm;

    public MovementSystem () {
        super(Family.all(PositionComponent.class, MovementComponent.class).get());
        pm = ComponentMapper.getFor(PositionComponent.class);
        mm = ComponentMapper.getFor(MovementComponent.class);
    }

    @Override
    public void processEntity (Entity entity, float deltaTime) {
        System.out.println("Process moveSystem");
        PositionComponent position = pm.get(entity);
        MovementComponent movement = mm.get(entity);

        position.x += movement.velocityX * deltaTime;
        position.y += movement.velocityY * deltaTime;
    }

    @Override
    public void update(float deltaTime) {
        Engine engine = getEngine();

        int count = engine.getEntitiesFor(Family.all(PositionComponent.class, MovementComponent.class).get()).size();
    }
}
/。。。
导入net.madmenyo.teststuff.AshleyTest.components.MovementComponent;
导入net.madmenyo.teststuff.AshleyTest.components.PositionComponent;
//...
公共类MovementSystem扩展了IteratingSystem{
私有组件映射器;
私有组件映射器mm;
公共交通系统(){
super(Family.all(PositionComponent.class、MovementComponent.class.get());
pm=ComponentMapper.getFor(PositionComponent.class);
mm=ComponentMapper.getFor(MovementComponent.class);
}
@凌驾
public void processEntity(实体实体、浮点deltaTime){
System.out.println(“进程移动系统”);
位置组件位置=pm.get(实体);
MovementComponent移动=mm.get(实体);
位置x+=移动速度x*增量时间;
position.y+=movement.velocityY*deltaTime;
}
@凌驾
公共无效更新(浮动增量时间){
Engine=getEngine();
int count=engine.getEntitiesFor(Family.all(PositionComponent.class,MovementComponent.class).get()).size();
}
}
好的,对于更新方法中的每个计数,它应该在每次更新引擎时运行
ProcessEntity
。因为调用了update,所以引擎被更新,因为
count>0
它应该是处理实体的,但是它永远不会被调用。通过在运行时检查引擎,它还包含我定义的族的多个实体。

processEntity(…)
由我没有调用的父更新方法调用。容易修复一旦我再看一遍,我就把它放在这里以防万一

@Override
public void update(float deltaTime) {
    super.update(deltaTime); // <-- call parent update
}
@覆盖
公共无效更新(浮动增量时间){
super.update(deltaTime)//