旋转相机但渲染精灵,使它们出现在它们原来的世界位置

Rotate camera but render sprites so that they appear in their original world positions

TLDR:我想旋转相机,但根据它们的世界位置而不是相机位置渲染精灵。

你好,

我目前正在使用 LibGDX,并且遇到了一个关于 camera/object 旋转的问题。

假设我的相机旋转为 0,并且在相机中心的左侧有一个对象(精灵)。

即 Camera Normal (0 degrees rotation)

当给定一个标准的世界坐标时,精灵渲染得很好,但是一旦我旋转我的相机,那个世界坐标就不同于相机的新 (x, y) 值。

如果我然后将我的相机平滑地向右旋转90度(顺时针,这样向上的方向如下图所示向右),原来在左边的物体(精灵)应该已经模拟了关于相机的左旋转(旋转通过相机发生,精灵只需要更新位置),现在位于相机中心点下方。

即 Camera Rotated (90 degrees clockwise)

我很困惑如何在平滑旋转期间计算精灵的新 locations/positions。

干杯, 独唱.

在到处寻找这个问题的解决方案 3 周后,我只需要调用方法

batch.setProjectionMatrix(camera.combined);

为了根据不断变化的相机旋转将精灵更新到它们的新位置。

此 link here 解释了投影矩阵的工作原理。