TiledMap не отображается

Я пытаюсь отрендерить OrthogonalTiledMap, который я создал с помощью редактора карт Tiled, однако по какой-то причине на моем игровом экране ничего не отображается; все, что я получаю, - это показываемое черное изображение. Я использую платформу Libgdx, в которой уже есть встроенные функции именно для таких карт, но они не будут работать для меня.

Libdgx также предоставляет пример рендеринга OrthogonalTiledMaps, однако он устарел, но я скорректировал его до текущей версии Libdgx, но, как уже было сказано, он не работает.

Нет никаких ошибок или исключений. Файл .tmx также не содержит ошибок. Все используемые тайлсеты присутствуют и не вызывают ошибок.

Это мой код:

public class My_Game extends ApplicationAdapter {
private TiledMap map;
private TiledMapRenderer renderer;
private OrthographicCamera camera;
private CameraInputController cameraController;

@Override
public void create () {
    float w = Gdx.graphics.getWidth();
    float h = Gdx.graphics.getHeight();

    camera = new OrthographicCamera();
    camera.setToOrtho(true, w/8f, h/8f);
    camera.update();


    cameraController = new CameraInputController(camera);
    Gdx.input.setInputProcessor(cameraController);

    map = new TmxMapLoader().load("map.tmx");
    renderer = new OrthogonalTiledMapRenderer(map, 1f / 8f);
}

@Override
public void render () {
    camera.update();
    renderer.setView(camera);
    renderer.render();
}
@Override
public void dispose () {
    map.dispose();
}
}`

person Grual    schedule 27.03.2018    source источник
comment
Иногда это происходит из-за того, что карта слишком большая, попробуйте поменьше   -  person Curio    schedule 29.03.2018


Ответы (1)


Прошло некоторое время с тех пор, как я сделал Libgdx, поэтому я мог подумать о чем-то другом, но разве вам не нужно делать некоторую очистку в функции 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);

в качестве первых трех строк и дайте мне знать, если это поможет.

person Vidar Hook    schedule 27.03.2018
comment
Нет, ничего не сделал, кроме изменения цвета с черного на красный. - person Grual; 28.03.2018
comment
Хорошо, затем удалите среднюю строку и выполните setToOrtho (false, ...); Это все, о чем я мог думать. В противном случае я подозреваю, что с вашими текстурами что-то не так. - person Vidar Hook; 28.03.2018