LibGDX - мозаичная карта не отображается - PullRequest
1 голос
/ 09 мая 2020

Я создал карту в виде плитки, вот как она должна выглядеть:

enter image description here

Однако, когда я визуализирую ее, я не получаю любую графику, я только цвет фона и черные полосы, где должны быть мои объекты:

enter image description here

Я не понимаю, что проблема в том, что вот мой код на экране, который отображается:

public class GameScreen implements Screen {
    private OrthographicCamera cam;
    private MyGdxGame myGame;
    private Vector3 pos;
    private Viewport gameport;
    private TmxMapLoader mapLoader;
    private TiledMap map;
    private OrthogonalTiledMapRenderer mapRenderer;

    public GameScreen(MyGdxGame game){
        this.myGame = game;
        pos = new Vector3(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2, 0);

        cam = new OrthographicCamera();
        cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
        gameport = new ExtendViewport(1060, 2060, cam);
        mapLoader = new TmxMapLoader();
        map = mapLoader.load("game_map1.tmx");
        mapRenderer = new OrthogonalTiledMapRenderer(map);

    }
    @Override
    public void show() {
    }

    public void update(float delta){
        handleInput(delta);
        cam.update();

    }

    private void handleInput(float delta) {
        if(Gdx.input.isTouched()){
            pos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
//            cam.unproject(pos);
            cam.position.x = Gdx.input.getX();
            cam.position.y = Gdx.input.getY();
        }
    }

    @Override
    public void render(float delta) {

        update(delta);

        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        mapRenderer.setView(cam);
        mapRenderer.render();

//        myGame.sr.begin(ShapeRenderer.ShapeType.Filled);
//        myGame.sr.setColor(Color.BLUE);
//        myGame.sr.circle(pos.x, pos.y, 50);
//        myGame.sr.end();
    }

    @Override
    public void resize(int width, int height) {
    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void hide() {

    }

    @Override
    public void dispose() {
    }
}

Кто-нибудь хочет объяснить, в чем проблема?

1 Ответ

0 голосов
/ 10 мая 2020

Итак, после целого дня пробуя разные вещи, я наконец понял это:

Я использовал несколько изображений или «наборы плиток» для создания карты. В итоге я упаковал нужные мне части в один файл .png с помощью TexturePacker и использовал только этот набор png / тайлов для создания карты.

...