繁体   English   中英

为什么示例作者为正交摄影机硬编码宽度和高度?(LibGdx Zombie Bird教程)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM