gpt4 book ai didi

java - LibGDX 使视口(viewport)大于屏幕

转载 作者:行者123 更新时间:2023-12-02 11:13:18 26 4
gpt4 key购买 nike

有一段时间我一直在努力解决如何在 LibGDX 中使用和设置视口(viewport)。我希望能够在 1920x1080 的显示器上渲染所有内容,并使其缩放以适合其打开的显示器,并且我需要一些帮助才能像这样工作。
This是我希望它看起来像的样子(从具有 1920x1080 显示器的计算机上获取),但是当我在 1440x800 的笔记本电脑上运行相同的代码时,它看起来像 this 。对于糟糕的屏幕照片,我深表歉意,无论出于何种原因,我都无法让它拍摄正在运行的游戏的屏幕截图,但它表明显示器的顶部仍未使用,并且并非所有内容都适合显示器。这是运行该节目的主要代码:

public class Main extends Game {
...
public void create() {
...
Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());

//last
this.setScreen(new MainMenu(this));
}

public void render() {
super.render(); //important!
}
...
}

然后是 MainMenu 类

public class MainMenu implements Screen{
...

public MainMenu(final Main game) {
this.game = game;
cam = new OrthographicCamera();
cam.setToOrtho(false, 1920, 1080);

...
}

@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.025f, .025f, 0.025f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
cam.update();
game.batch.setProjectionMatrix(cam.combined);

...

if(Gdx.input.isKeyPressed(Keys.ESCAPE)) {
Gdx.app.exit();
}
}

...
}

我如何实现视口(viewport)或类似的东西,使其在较小的屏幕上看起来与在较大的屏幕上看起来相同?非常感谢任何帮助!如果您想查看我为简洁起见而省略的代码,它们都在我的 GitHub 上。 。再次感谢!

最佳答案

这并没有花费我很长时间,希望有人能向我学习,哈哈。

事实证明,当您像这样使用固定高度和宽度的相机时,它确实会填满整个显示器,但相机宽度不等于Gdx.graphics.getWidth()返回的值。因此,我的所有代码都像被压缩一样渲染,因为它引用的是 Gdx.graphics 返回的宽度,而不是camera.viewportWidth。

经验教训:Gdx.graphics.getWidth() 可以并且将会根据设备而变化,而 cam.veiwportWidth 不会。哎呀!

关于java - LibGDX 使视口(viewport)大于屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50460276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com