创建区间迭代系统

一个简单的 EntitySystem,它可以处理一个实体族,而不是每帧一次,但是在给定的间隔之后。实体处理逻辑应该放在 processEntity(Entity) 中。有关详细信息,请参阅 IntervalIteratingSystem

在下面的代码示例中,最佳用法是物理世界步骤。

public class Constants {
     public final static float TIME_STEP = 1 / 60.0f; // 60 fps
     public final static int VELOCITY_ITERATIONS = 6;
     public final static int POSITION_ITERATIONS = 2;
}

public class PhysicsSystem extends IntervalIteratingSystem {
    public PhysicsSystem () {
         super(Family.all(PhysicsComponent.class), Constants.TIME_STEP);
    }

    @Override
    protected void processEntity(Entity entity) {
         // process the physics component here with an interval of 60fps
    }

    @Override
    protected void updateInterval() {
        WorldManager.world.step(Constants.TIME_STEP, Constants.VELOCITY_ITERATIONS, Constants.POSITION_ITERATIONS);
        super.updateInterval();
    }

}