LibGDX - 将等距平铺地图缩放到屏幕尺寸。更大的屏幕更大的地图

时间:2017-11-09 18:40:08

标签: java android libgdx

我是LibGDX的新手,所以我仍然试图获得它的要点。我在屏幕上渲染了一张Isometric地图,最后差不多2天后我设法将它放在屏幕上。然而,无论屏幕有多大,它都保持相同的大小。这就是我的意思:

post

800x600

我想要它做的是根据屏幕的大小来缩放地图。这是代码:

{{1}}

提前致谢!

1 个答案:

答案 0 :(得分:0)

要使用不同的屏幕尺寸,libGDX有Viewports。他们保持 屏幕上所有绘图的比例在不同的屏幕上相同。

例如FitViewport它将始终保持虚拟屏幕大小的宽高比​​,同时尽可能地缩放以适应屏幕。

  public class PlayScreen implements Screen {

    private TiledMap map;
    private IsometricTiledMapRenderer isometricRenderer;
    private FitViewport viewport;

    public void createUI() {
        // Load map from tiled .tmx file.
        map = new TmxMapLoader().load("arena1/arena1.tmx");

        // Setup isometric renderer and camera.
        isometricRenderer = new IsometricTiledMapRenderer(map);

        int width = 800; // Can change to other
        int height = 480;
        viewport = new FitViewport(width, height, new OrthographicCamera(width, height));

        viewport.camera.position.set(768, 0, 0);
    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        isometricRenderer.setView(viewport.camera);
        isometricRenderer.render();
    }

    @Override
    public void resize(int width, int height) {
        viewport.update(width, height);
    }
    ...
}