📜  libgdx 正交相机 (1)

📅  最后修改于: 2023-12-03 15:17:19.278000             🧑  作者: Mango

使用Libgdx正交相机

Libgdx正交相机用于实现2D游戏和应用程序中的视觉投影效果。与透视相机不同,正交相机会保持场景中所有对象的缩放比例不变,从而实现更加简洁、准确的模拟。

正交相机

在Libgdx中,您可以使用OrthographicCamera类来创建正交视图。例如:

OrthographicCamera camera = new OrthographicCamera();

通过实例化一个OrthographicCamera类来创建正交视图,这里默认屏幕底部的左侧为原点,使用像素作为单位来显示场景中的对象。您可以使用以下方法更改此默认值:

OrthographicCamera camera = new OrthographicCamera(800, 480);

此代码创建一个OrthographicCamera对象,该对象将场景渲染为800像素宽和480像素高的屏幕。您还可以使用setToOrtho()将摄像机设置为正交模式:

camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

这些方法中的第一个参数将true或false传递给摄像机。如果使用true,则原点位于屏幕的中心,正方向为顶部和右侧。如果使用false,则原点位于左下角,方向与前面的示例相同。

可视区域

OrthographicCamera的主要优点是使场景中的对象保持其原始缩放比例,同时将其缩放为视图中的大小。这意味着景深效果将受到限制,但它也使我们能够轻松地确定在屏幕上出现的每个对象的大小和位置。

通过调整可视区域大小,您可以调整场景中每个对象的大小。

camera.viewportWidth = 800; // 宽度
camera.viewportHeight = 480; // 高度
矩阵变换

正交相机通过转换矩阵将对象从世界坐标系转换为屏幕坐标系。您可以使用以下代码获取矩阵变换:

Matrix4 matrix4 = camera.combined;
总结

Libgdx正交相机是实现2D游戏和应用程序中的视觉投影效果的理想选择。它可以保持场景中所有对象的比例不变,同时使它们以适合于屏幕的比例显示。您可以使用上述方法调整可视区域的大小,以及获取适合于屏幕的转换矩阵。