[英]Why does the sample author hardcode width and height for orthographic camera?(LibGdx Zombie Bird tutorial)
我正在尝试遵循此处的指南并学习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检索正在运行游戏的屏幕的高度和宽度,这是有原因的吗? (-从在LibGDX(Java)中更改坐标系开始 )
您不了解相机的行为。 相机的屏幕是320x480还是1080 * 1920都没关系。 相机使用自己的坐标系。 例如我们有1920 * 1080屏幕。 我们不想使用像素,因为这是不好的做法。 我们真正想要的是拥有自己的世界坐标系。 如果您的世界为16 * 9 m,则可以计算出1 m = 120像素。 但是您的朋友可以拥有800 * 450的屏幕,对他来说1 m = 50像素。 这就是为什么我们要硬编码相机的宽度和高度。 但是这里还有另一个问题,比率。 我们认为我们的比率是16/9,但是某些设备可以具有4/3比率。 支持很多比率是非常复杂的主题,因此在这里我不想提及。
不同比例游戏的屏幕截图
如果您愿意,我可以与您分享我的代码。 但是请注意,这并不完美,也不是完整的游戏。 正如您从屏幕截图中看到的那样,我不是硬编码高度,而是宽度。 所以我上下都有空的空间。
如果有人还在为此苦苦挣扎,建议阅读第5部分,作者在其中解释“我们将如何假设游戏的宽度始终为136。高度将动态确定!我们将计算设备的屏幕分辨率并确定游戏的高度。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.