如何使用LibGdx在Android上设置地图大小

时间:2017-07-10 17:35:05

标签: android libgdx

我正在开发一款简单的游戏,但我在设置地图大小时遇到​​了问题。我正在使用OrthographicCamera。我希望地图可见。我应该如何设置视口new OrthographicCamera(viewport_width, viewport_height)的正确大小? 目前我传递了一些价值,当我在地图上绘制元素时,我不会看到它们,因为它们超出界限,如果我使宽度和高度变得巨大,我可以看到它们。我想让整个地图可见,并在用户的视线上绘制所有内容。我不知道我在哪里犯了错误

1 个答案:

答案 0 :(得分:2)

您的地图是方形尺寸,大部分设备都是矩形尺寸,因此您需要将地图保持在屏幕中央,或者使用纵向或横向模式。

public class TileTest extends ApplicationAdapter {

    ExtendViewport extendViewport;
    OrthogonalTiledMapRenderer mapRenderer;
    OrthographicCamera camera;
    float worldWidth,worldHeight;

    @Override
    public void create() {

        float tileWidth=64,tileHeight=64;
        float mapWidth=20,mapHeight=20;

        worldWidth=tileWidth*mapWidth;
        worldHeight=tileHeight*mapHeight;

        camera=new OrthographicCamera();
        extendViewport =new ExtendViewport(worldWidth,worldHeight,camera);

        TmxMapLoader mapLoader=new TmxMapLoader();
        TiledMap map=mapLoader.load("square.tmx");

        mapRenderer=new OrthogonalTiledMapRenderer(map);
    }

    @Override
    public void render() {

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

        mapRenderer.setView(camera);
        mapRenderer.render();
    }

    @Override
    public void dispose() {
        mapRenderer.dispose();
    }

    @Override
    public void resize(int width, int height) {
        extendViewport.update(width,height,false);
        extendViewport.getCamera().position.set(worldWidth/2,worldHeight/2,0);
        extendViewport.getCamera().update();
   }
}

输出是:

enter image description here