Java 在Android上使用libgdx扩展到sceen
我正在使用libgdx为Android创建一个简单的游戏。我谈到了不同设备的不同屏幕尺寸的问题,但还没有找到任何具体的文档来说明如何处理这个问题 我想我应该用正交摄影机?到目前为止,我的代码示例如下:Java 在Android上使用libgdx扩展到sceen,java,android,libgdx,Java,Android,Libgdx,我正在使用libgdx为Android创建一个简单的游戏。我谈到了不同设备的不同屏幕尺寸的问题,但还没有找到任何具体的文档来说明如何处理这个问题 我想我应该用正交摄影机?到目前为止,我的代码示例如下: private OrthographicCamera camera; public void create() { batch = new SpriteBatch(); texture = new Texture(Gdx.files.internal("data
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();
}
我走的路线对吗?我没有任何其他设备可供测试,我的模拟器正在给我带来问题。如果您还没有这样做,您应该将LibGDX版本升级到最新版本1.0.0。在这个版本中,引入了所谓的视口 你可以找到一些截图和代码片段以及你需要知道的一切
基本上,你必须为某种策略做出决定,你的问题听起来像是你对ScreenViewport或StretchViewport感兴趣,然后让它来管理你的相机。我在libGDX项目中使用的是覆盖调整大小方法,并将正交相机设置为屏幕大小,如下所示,使用名为setToOrthoboolean yDown的内置方法,该方法将摄影机设置为当前大小的中心,如果希望y轴向下或不向下,则该参数将作为一个参数:
@Override
public void resize(int width, int height){
camera.setToOrtho(false);
}
但是,这不会改变纹理的大小,如果你想重新缩放纹理,那么我建议不要将它们设置为绝对大小,例如15像素,尝试将它们设置为屏幕大小的百分比
或者,另一种有时更有效的方法是计算出特定尺寸下的正确尺寸,例如800 x 480,然后计算出宽度增加的百分比,并将其应用于精灵,例如:
@Override
public void resize(int width, int height){
super.resize(width, height);
camera.setToOrtho(false);
//The following is if the sprites are normally correct scaled
//for a screen size of 800 x 480, change to whatever you need
//They should both be floats and class variables
widthChange = width / 800;
heightChange = height / 480;
}
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();
//Rather than using sprite.draw(batch), use:
batch.draw(sprite, sprite.x * widthChange, sprite.y * heightChange, sprite.width * widthChange, sprite.height * heightChange);
batch.end();
}
我最近刚安装了libgdx实际上,我想我有1.0.0。如何检查版本?检查视口类是否存在。不需要其他设备来测试不同的大小。只要使用“调整大小”方法(使用新视口类或手动)更新相机,就可以在桌面构建中调整窗口大小。