处理:有没有更好的方法来制作具有P3D渲染器的自上而下的相机

时间:2017-11-07 06:36:33

标签: java graphics processing

我做了一个自上而下的游戏,相机将玩家置于屏幕中间。我的代码有效,但我不了解eyeXYZ参数。如果我把一个小于1000000的数字像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);

1 个答案:

答案 0 :(得分:1)

前三个参数指定相机(眼睛)的位置。因此,如果你想让你的相机在你的播放器上,那么你应该使用:

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的影响变得更强,非垂直性变得更明显。