处理:有没有更好的方法来使用 P3D 渲染器制作自上而下的相机
Processing: Is there a better way to make a top down camera with P3D Renderer
我正在制作一个自上而下的游戏,其中相机将玩家置于屏幕中间。我的代码有效,但我不明白 eyeXYZ 参数。如果我输入一个小于 1000000000 的数字,例如 100,游戏就会出现故障并且角度将不再垂直(自上而下)。
在 Processing 中,有没有更好的方法来制作一个从上到下跟随玩家的相机?这是我拥有的:
camera(0.0, 0.0, 1000000000, player.x+300, player.y, 0.0, 0.0, 1.0, 0.0);
ortho(-width, width, -height, height);
前三个参数指定相机(眼睛)的位置。因此,如果你想让你的相机在你的播放器上方,那么你应该使用:
camera(player.x, player.y, player.z + cameraHeight ...
cameraHeight
是摄像机在玩家上方的距离。由于您使用的是正交视图,因此该值并不重要。它只对适当的深度值很重要(这取决于 znear 和 zfar 的值,Processing 文档对此帮助不大)。
接下来的三个参数是焦点的位置。如果你想专注于播放器,你应该使用:
... player.x, player.y, player.z ...
(我不确定这个 +300
应该做什么)。
最后三个参数是图像中指向上方的方向。 y轴应该没问题。
... 0.0, 1.0, 0.0);
就是这样。
你的眼睛的超大 z 坐标之所以有效,是因为这基本上退化了 +300
偏移量。与 1000000000
相比,300
实际上是零,这就是它看起来垂直的原因。当你减小z坐标时,300
的影响越来越大,非垂直性变得更加明显。
我正在制作一个自上而下的游戏,其中相机将玩家置于屏幕中间。我的代码有效,但我不明白 eyeXYZ 参数。如果我输入一个小于 1000000000 的数字,例如 100,游戏就会出现故障并且角度将不再垂直(自上而下)。
在 Processing 中,有没有更好的方法来制作一个从上到下跟随玩家的相机?这是我拥有的:
camera(0.0, 0.0, 1000000000, player.x+300, player.y, 0.0, 0.0, 1.0, 0.0);
ortho(-width, width, -height, height);
前三个参数指定相机(眼睛)的位置。因此,如果你想让你的相机在你的播放器上方,那么你应该使用:
camera(player.x, player.y, player.z + cameraHeight ...
cameraHeight
是摄像机在玩家上方的距离。由于您使用的是正交视图,因此该值并不重要。它只对适当的深度值很重要(这取决于 znear 和 zfar 的值,Processing 文档对此帮助不大)。
接下来的三个参数是焦点的位置。如果你想专注于播放器,你应该使用:
... player.x, player.y, player.z ...
(我不确定这个 +300
应该做什么)。
最后三个参数是图像中指向上方的方向。 y轴应该没问题。
... 0.0, 1.0, 0.0);
就是这样。
你的眼睛的超大 z 坐标之所以有效,是因为这基本上退化了 +300
偏移量。与 1000000000
相比,300
实际上是零,这就是它看起来垂直的原因。当你减小z坐标时,300
的影响越来越大,非垂直性变得更加明显。