1

我使用 OpenGL 和 C++ 在 Visual Studio 中制作了自己的简单关卡编辑器,为安卓手机创建游戏。但是我偶然发现了一个问题,即我放入编辑器中的某些对象在 android 上没有正确显示,有时甚至没有出现。我一直在四处寻找,找不到解决方案。所以这是我的lLevel Editor的正交相机和屏幕分辨率:

相机对象正交矩阵:

GoldState::aspectRatio = m_AspectRatio = (float)width / (float)height;
    float orthoLeft = 0.0f; //* m_AspectRatio;
    float orthoRight = 100.0f; //* m_AspectRatio;
    float orthoUp = 100.0f;
    float orthoDown = 0.0f;
    m_OrthoMatrix = glm::ortho(orthoLeft, orthoRight, orthoDown, orthoUp);

它对于 android 也完全相同(使用 ndk)。

纵横比被注释掉了,因为我正在试验,如果不乘以纵横比,整个世界都会被拉伸。

现在到统一的自由纵横比,我有一种感觉,就像我的正射相机一样,没有乘以纵横比。那到底是什么,当我选择自由纵横比时,我放置在统一上的每个对象如何保持 1:1 并且它没有被拉伸或任何东西?如果有人可以向我解释这一点,那真的会对我有很大帮助。

还有一件事。我已经使用 opengl 在 android 上制作了几款游戏,但我特别将背景图像设置为精确的宽度和高度,因为我一直在乘以我的正交矩阵中的纵横比。但是这次我只想提取背景和对象的位置和大小,并让它们保持它们的外观而不拉伸不同的分辨率。

如果有任何其他通用解决方案,如果没有我想我应该在关卡编辑器上使用一些固定分辨率并为 android 使用相同的分辨率?

4

0 回答 0