Libgdx TiledMap Upsidedown при инверсии оси Y в Y вниз - PullRequest
0 голосов
/ 27 января 2019

Я установил для оси y на libgdx значение yDown, так как по умолчанию установлено значение yUp, камера перевернется и покажет мозаичную карту вверх ногами. Я искал и нашел класс параметров в libgdx

/**
 * Tiled map pertaining to the region
 */
private TiledMap map;

private Parameters parameters;

/**
 * Map renderer that handles the drawing for the map
 */
private OrthogonalTiledMapRenderer mapRenderer;

/**
 * Game camera
 */
private OrthographicCamera camera;

@Override
public void create() {
    parameters = new Parameters();
    parameters.flipY = false;
    map = new TmxMapLoader().load("maps/test.tmx", parameters);
    camera = new OrthographicCamera(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());                    Gdx.graphics.getHeight());
    camera.setToOrtho(true,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
    mapRenderer = new OrthogonalTiledMapRenderer(map, 1f);
}

@Override
public void render() {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        camera.update();
        mapRenderer.setView(camera);
        mapRenderer.render();
 }

Это результат этого кода flipY = false

если мы изменим flipY на true, он будет отображаться правильно, но также и с ног на голову, поскольку ortho верно flipY = true

Вот изображение карты в плитке Изображение TiledMap

Любая причина, почему такое поведение происходит? Я думал, что это будет перевернуть вершины, где карта четырехугольника отображается в openGL

Я искал код для libgdx OrthogonalTiledMapRenderer, и это то, что он делает, если flipY имеет значение true

                    if (flipY) {
                    float temp = vertices[V1];
                    vertices[V1] = vertices[V3];
                    vertices[V3] = temp;
                    temp = vertices[V2];
                    vertices[V2] = vertices[V4];
                    vertices[V4] = temp;
                    }
...