LibGDX碰撞检测改进

时间:2017-03-14 07:40:01

标签: java android libgdx collision

我正在寻求改进我的碰撞检测算法。我正在使用LibGDX,没有Box2D。我的问题是,当我的屏幕上有太多实体时,fps下降到15。

这是我目前所拥有的,我正在检查地图上的每个对象,我正在尝试降低每个实体检查的对象数量。

private static void tileCollision(Entity entity) {

    MapObjects objects = GameScreen.map.getLayers().get(Consts.COLLISION_LAYER_ID).getObjects();

    Vector2 currPos = new Vector2(entity.getPosition().x, entity.getPosition().y);

    for (RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)) {

        Rectangle rectangle = rectangleObject.getRectangle();

        if (Intersector.overlaps(rectangle, entity.getPosition())) {

            entity.setX(entity.getPrePosition().x);
            if (Intersector.overlaps(rectangle, entity.getPosition())) {
                entity.setX(currPos.x);
                entity.setY(entity.getPrePosition().y);

                if (Intersector.overlaps(rectangle, entity.getPosition())) {
                    entity.setX(entity.getPrePosition().x);
                }
            }
        }
    }
}

0 个答案:

没有答案