有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么示例作者要硬编码正交摄影机的宽度和高度?(LibGdx僵尸鸟教程)

我正试图按照这里的指南学习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检索游戏正在运行的屏幕的高度和宽度。图样getWidth/getHeight? (-fromChanging the Coordinate System in LibGDX (Java)


共 (2) 个答案

  1. # 1 楼答案

    如果有人还在为这个问题挣扎,我建议阅读第5部分,作者在其中解释了如何解决这个问题 “我们将假设游戏的宽度始终为136。高度将动态确定!我们将计算设备的屏幕分辨率,并确定游戏的高度。”

  2. # 2 楼答案

    你不明白摄像机是怎么工作的。摄像头的屏幕是320x480还是1080*1920并不重要。相机使用自己的坐标系。例如,我们有1920*1080屏幕。我们不想使用像素,因为这是不好的做法。我们真正想要的是拥有自己的世界坐标系。如果你有16*9m的世界,那么你可以计算出1m=120像素。但是你的朋友可以有800*450的屏幕,对他来说,1米=50像素。这就是为什么我们硬编码相机的宽度和高度。但这里还有另一个问题,比率。我们认为我们的比率是16/9,但有些设备可能有4/3的比率。支持很多比率是一个非常复杂的主题,所以我不想在这里提及

    我的游戏不同比例的截图

    如果你愿意,我可以和你分享我的代码。但请注意,这不是完美的,也不是完整的游戏。正如你们从截图中看到的,我没有硬编码高度,只有宽度。所以我上下都有空的空间