好的,我已经阅读了关于这个主题的所有可能的谷歌条目,但仍然不确定该采取什么途径。目前这是我的设置:
static final float WIDTH = 800;
static final float HEIGHT = 600;
@Override
public void resize(int width, int height) {
camera = new OrthographicCamera(WIDTH, HEIGHT);
camera.position.set(WIDTH / 2, HEIGHT / 2, 0);
glViewport = new Rectangle(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
...
}
public void render(float delta) {
GL20 gl = Gdx.graphics.getGL20();
gl.glClearColor(1, 0, 0, 1);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
gl.glViewport((int) glViewport.x, (int) glViewport.y,
(int) glViewport.width, (int) glViewport.height);
camera.update();
....
}
这在我的屏幕上做得很好,但有很大的缺点。比例不会被拉伸。例如,当我在 800x600 的世界中定义一个精灵时,它在 1280x720 的屏幕上保持完全相同。这也会影响放置在特定位置的精灵,因为 800x600 上的 400px 位置与 1280x720 屏幕上的位置不同。也有特定区域,如果触摸会发生某些事情,但我的解决方案和我在互联网上找到的解决方案也不适用于它。让我们不要谈论纵横比,因为每次我想到它我都会头疼。
必须有一种合乎逻辑的方式来使用 libGdx,因为已经发布了许多游戏,但我似乎找不到可行的方法。任何人对如何继续处理这个有任何建议吗?