libGDX创建tilesmap的小地图

时间:2017-03-05 22:54:35

标签: libgdx tiled

我正在使用 TiledMap 开发自上而下的2D游戏

目前我想创建我的TiledMap的小地图,但我真的很困惑如何做到这一点。

我读过一些我应该创建另一个相机的内容,缩小并再次渲染地图,但我应该如何在右上角绘制缩小的地图?

我是否在思考这一切?

我的地图:

public class LiquidMap {

private TiledMap                    map;
private OrthogonalTiledMapRenderer  renderer;
private OrthographicCamera          camera = new OrthographicCamera();

private MiniMap miniMap;

public LiquidMap(String filePath) {
    map = new TmxMapLoader().load(filePath);

    renderer = new OrthogonalTiledMapRenderer(map, 1 / 32f);

    camera.setToOrtho(false, 30, 20);

    miniMap = new MiniMap(map);
}

public void update(float x, float y){
    camera.position.x = x;
    camera.position.y = y;
    camera.update();
    //renderer.setView(camera.combined, x - 10, y - 10, 20, 20);    
    renderer.setView(camera);

    miniMap.update(x, y);
}

public void update(HostPlayer player){
    this.update(player.position.x + (player.skin.getWidth()/2f)/32f, player.position.y + (player.skin.getHeight()/2f)/32f); 
}

public void render(HostPlayer player){
    renderer.render();
    renderer.getBatch().begin();
    renderer.getBatch().draw(player.skin, player.position.x, player.position.y, 1/32f * player.skin.getWidth(), 1/32f * player.skin.getHeight());
    renderer.getBatch().end();

    miniMap.render();
}

我的MiniMap:

public class MiniMap {

private OrthogonalTiledMapRenderer  renderer;
private OrthographicCamera          camera = new OrthographicCamera();

public MiniMap(TiledMap map) {

    renderer = new OrthogonalTiledMapRenderer(map, 1 / 32f);

    camera.setToOrtho(false, 30, 20);

    camera.zoom = 10;
}

public void update(){

}

public void update(float x, float y){

    //Pixventure.instance.gameScreen.getCamera()

    camera.position.x = x;
    camera.position.y = y;
    camera.update();

    renderer.setView(camera.combined, x-15, y-15, 30, 30);  
    //renderer.setView(camera); 
}

public void render(){
    renderer.render();
}

}

整个情况看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

Minimap的相机位置由玩家位置更新。将小地图放在角落,不要用update()方法更改其位置。

相关问题