gpt4 book ai didi

android - Android 上 libgdx 游戏的全屏分辨率

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:38:15 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以在 libgdx 中制作 Android 游戏,以便它们都共享相同的 480x800 分辨率。使用 Gdx.graphics.setDisplayMode(480, 800, true) 似乎没有任何改变。创建一个 480 x 800 的 OrthographicCamera 使游戏成为 480 x 800,但不会像我预期的那样放大到全屏并占据整个屏幕。当我在我的手机上测试它时,当游戏以 480x800 分辨率播放时,手机只是使用空白填充屏幕的其余部分。这是我正在使用的代码。

public class GameScreen implements Screen {

private Game game;
private OrthographicCamera guiCam;
private SpriteBatch batch;
private Texture texture;
private Rectangle glViewport;

public GameScreen (Game game)
{
this.game = game;
guiCam = new OrthographicCamera(GAME_WIDTH, GAME_HEIGHT);
guiCam.position.set(GAME_WIDTH / 2, GAME_HEIGHT / 2, 0);
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/c2.png"));
glViewport = new Rectangle(0, 0, GAME_WIDTH, GAME_HEIGHT);
}

@Override
public void render(float delta) {
if (Gdx.input.justTouched()) {
texture = new Texture(Gdx.files.internal("data/c1.png"));
}
GL10 gl = Gdx.graphics.getGL10();
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);

guiCam.update();
guiCam.apply(gl);
batch.setProjectionMatrix(guiCam.combined);
batch.begin();
batch.draw(texture, 0, 0, 0, 0, 142, 192);
batch.end();
}

private static final int GAME_WIDTH = 480;
private static final int GAME_HEIGHT = 800;
}

提前致谢。

最佳答案

您已将 glViewport 设置为 480x800,这意味着您要求手机硬件提供 480x800 的窗口以供绘制。因为大多数(全部?)电话硬件不进行屏幕缩放(就像您的桌面显示器那样),它们只会在屏幕上为您提供 480x800 的区域。

您需要让 OpenGL 来“缩放”您的屏幕,您可以通过将 glViewport() 设置为您设备的物理分辨率来实现(模长宽比注意事项!)。您应该让相机保持您喜欢的“虚拟”分辨率(在本例中为 480x800)。现在 OpenGL 会将您的所有图元缩放到屏幕的分辨率。

作为快速测试,试试这个:

gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

下一个问题是,如果硬件纵横比与您的“虚拟”纵横比不匹配。在这种情况下,您需要在拉伸(stretch)、在一侧留下黑条或更改虚拟宽高比之间做出决定。有关相机/视口(viewport)设置的更多详细信息以及纵横比问题的一些解决方案,请参阅此博客文章:http://blog.acamara.es/2012/02/05/keep-screen-aspect-ratio-with-different-resolutions-using-libgdx/

关于android - Android 上 libgdx 游戏的全屏分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9899301/

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