在tilemap上渲染Libgdx中的精灵

时间:2017-04-23 22:51:46

标签: java android libgdx tile

我试图在libgdx / android studio中的平铺地图上渲染精灵/纹理。请注意,我的地图是20x25,有8个像素图块,而splitTiles是纹理区域。

 public void show() {

    cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    cam.setToOrtho(false, 20, 25);
    batch = new SpriteBatch();
    map = new TmxMapLoader().load("centipedeMap.tmx");
    renderer = new OrthogonalTiledMapRenderer(map,1/8f)
}

  public void render(float delta) {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    renderer.setView(cam);
    renderer.render();
    player.update();
    ex.update();

    batch.setProjectionMatrix(cam.combined);
    cam.update();

    batch.begin();
    Texture tilesImage = new Texture(Gdx.files.internal("tile.png"));
    TextureRegion[][] splitTiles = TextureRegion.split(tilesImage, 8, 8);
    batch.draw(splitTiles[0][0],50,50);
    batch.end();
}

1 个答案:

答案 0 :(得分:1)

您的相机视口尺寸为20,25,并且您正在以50,50绘制TextureRegion,因此您的图像会在屏幕外显示,因此不可见。

建议:Texture是重物,所以尽量避免创建相同纹理的多个实例。

您的相机视口尺寸为20,25,与tileMap(20,25)尺寸相同,因此相机1单位表示TileMap的一个单元格。

你可以检测与Tiles的碰撞,没有必要创建Rectangle对象。