问题描述
我正在开发一个简单的游戏,在设置地图大小时遇到了问题.我正在使用OrthographicCamera
.我希望地图可见.如何设置视口new OrthographicCamera(viewport_width, viewport_height)
的适当大小?目前,我正在传递一些值,并且当我在地图上绘制元素时,我看不到它们,因为它们超出范围,如果我将宽度和高度设置得很大,我就能看到它们.我想让整个地图可见,并在用户视线范围内绘制所有内容.我不确定我在哪里犯错
I'm working on a simple game and I have problem with setting the map size. I am using OrthographicCamera
. I want the map to be visible. How should I set the proper size of viewport new OrthographicCamera(viewport_width, viewport_height)
?Currently I'm passing some value and when I'm drawing elements on the map I don't see them because they are out of bound, if I make the width and height enormous I can see them. I want to have the whole map visible and draw everything on the sight of the user. I'm not sure where I'm making a mistake
推荐答案
您的地图为方形,大多数设备的尺寸为矩形,因此您需要将地图保持在屏幕中央,无论您使用的是纵向还是垂直横向模式.
You map is in square size and most of devices are in rectangular size so you need to keep your map in center of screen, either you're using portrait or landscape mode.
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();
}
}
输出为:
这篇关于如何使用LibGdx在Android上设置地图大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!