我正在使用libgdx为Android创建一个简单的游戏。我已经遇到了针对不同设备使用不同屏幕尺寸的问题,但还没有找到关于如何处理这个问题的任何具体文档。
我想我应该使用OrthographicCamera
?我到目前为止的代码示例是:
private OrthographicCamera camera;
public void create() {
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/cube.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
camera = new OrthographicCamera(1280, 720);
sprite = new Sprite(texture);
sprite.setOrigin(0, 0);
sprite.setPosition(1280/2, 600);
}
public void render() {
Gdx.gl.glClearColor(0.204f, 0.255f, 0.255f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
}
我是否沿着正确的路线走?我没有任何其他设备可以测试,我的模拟器给我带来了问题。
答案 0 :(得分:0)
如果您还没有这样做,则应将LibGDX版本升级到最新版本1.0.0。在这个版本中,已经引入了所谓的Viewport
。
您可以找到一些屏幕截图和代码段以及您需要了解的所有内容here。
基本上你必须决定采用某种策略(你的问题听起来像是ScreenViewport
或StretchViewport
中的有趣问题)然后让它来管理你的相机。
答案 1 :(得分:0)
我在libGDX项目中使用的是override
resize
方法,并使用名为{{1的内置方法将OrthographicCamera
设置为屏幕大小,如下所示如果您希望y轴指向下方,则将摄像机设置为当前大小的中心位置:
setToOrtho(boolean yDown)
但是,如果你想重新缩放纹理,这不会改变纹理的大小,我会建议而不是将它们设置为绝对大小,例如15像素尝试将它们设置为屏幕大小的百分比。
或者,另一种有时候更有效的方法是计算出一定大小的正确尺寸,例如800 x 480,然后计算出宽度的增加百分比并将其应用于精灵E.g:
@Override
public void resize(int width, int height){
camera.setToOrtho(false);
}