我正在尝试按照此处的指南学习 LibGdx。
http://www.kilobolt.com/day-4-gameworld-and-gamerenderer-and-the-orthographic-camera.html
这是作者设置正交相机宽度和高度的代码(相机用于将 3d 内容均匀地投影到 2d 中?
private OrthographicCamera cam;
and later in a constructor
cam = new OrthographicCamera();
cam.setToOrtho(true, 136, 204);
他选择硬编码宽度和高度而不是通过 Gdx.graphics.getWidth/getHeight 检索游戏正在运行的屏幕的高度和宽度是否有原因? (-来自 Changing the Coordinate System in LibGDX (Java) )
最佳答案
您不了解相机的工作原理。对于相机来说,屏幕是 320x480 还是 1080*1920 并不重要。相机使用自己的坐标系。例如我们有1920*1080的屏幕。我们不想使用像素,因为这是不好的做法。我们真正想要的是拥有自己的世界坐标系。如果你有 16*9 m 的世界,那么你可以计算出 1 m = 120 像素。但你的 friend 可以拥有 800*450 的屏幕,对他来说 1 m = 50 像素。这就是为什么我们对相机的宽度和高度进行硬编码。但这里还有一个问题,就是比例。我们认为我们的比率是 16/9,但有些设备可以有 4/3 的比率。支持很多比率是非常复杂的主题,所以我不想在这里提及。
我的游戏不同比例的截图
如果您愿意,我可以与您分享我的代码。但请注意,它并不完美,也不是完整的游戏。正如您从屏幕截图中看到的,我没有硬编码高度,只有宽度。所以我上下都有空的空间。
关于java - 为什么示例作者对正交相机的宽度和高度进行硬编码?(LibGdx Zombie Bird 教程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448512/