2

I am trying to render a Tiled Map on to an Android device. However, when I test it on my android phone, only the top layer is rendered on to the screen (out of two layers total). Is there a way to fix this? I am using Libgdx as well as Tiled Map Editor.

Below is some of the code for my project which implements the Screen interface. The omitted code is not necessary for the question but can be shown if needed.

public class Play implements Screen {
public void render(float delta) {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    renderer.setView(cam);
    renderer.render();

    /*code ommited*/

    renderer.getSpriteBatch().begin();
    animateAgent(time);

    sr.setProjectionMatrix(cam.combined);
    try {
    animateBullets(sr);
    } catch(IndexOutOfBoundsException e) {}

    renderer.getSpriteBatch().end();
}

public void show() {
    cam = new OrthographicCamera();
    cam.setToOrtho(false);
    cam.position.set(0,0,0);
    cam.zoom = 8.0f;
    cam.update();

    map = new TmxMapLoader().load("data/batMap.tmx");
    blocked = (TiledMapTileLayer) map.getLayers().get(1);
    renderer = new OrthogonalTiledMapRenderer(map);

    atlas = new TextureAtlas("data/specOps.txt");
    agent = atlas.createSprites("agent");

/* code ommitted */

    player = new Player(agent,blocked,bullets);
    Gdx.input.setInputProcessor(player);
}
}

Here's how it currently looks: enter image description here and here's how it should look: enter image description here

mpromonet
  • 11,326
  • 43
  • 62
  • 91

2 Answers2

1

You are only getting one layer at

 blocked = (TiledMapTileLayer) map.getLayers().get(1);

or are you getting the other layer elsewhere?

ADDER
  • 404
  • 3
  • 5
1

Try:

map.getLayers().get(0).setVisible(true);
map.getLayers().get(1).setVisible(true);