Я установил для оси 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;
}