[英]LibGDX - Scaling Isometric Tiled Map to screen size. Larger screen larger map
我是LibGDX的新手,所以我一直試圖了解它的要旨。 我在屏幕上繪制了一個等軸測圖,最后兩天后,我設法將其在屏幕上居中。 但是,無論屏幕有多大,它都保持相同的大小。 這是我的意思:
我想要做的是根據屏幕的大小放大地圖。 這是代碼:
public class PlayScreen implements Screen {
private TiledMap map;
private IsometricTiledMapRenderer isometricRenderer;
private OrthographicCamera camera;
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);
camera = new OrthographicCamera();
}
@Override
public void show() {
Gdx.gl.glClearColor(0, 0, 0, 1);
createUI();
}
@Override
public void render(float delta) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
isometricRenderer.setView(camera);
isometricRenderer.render();
}
@Override
public void resize(int width, int height) {
camera.viewportWidth = width * 2;
camera.viewportHeight = height * 2;
camera.position.set(768, 0, 0);
camera.update();
}
@Override
public void pause() {}
@Override
public void resume() {}
@Override
public void hide() {}
@Override
public void dispose() {
map.dispose();
isometricRenderer.dispose();
}
}
提前致謝!
要使用不同的屏幕尺寸,libGDX具有視口 。 它們使屏幕上所有圖形的比例在不同屏幕上保持相同。
例如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);
}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.