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