使用SpriteKit相机节点防止位置偏移

我注意到了centerOnNode:方法如图所示,

 - (void)centerOnNode:(SKNode *)node { cameraOffset = [node.scene convertPoint:node.position fromNode:node.parent]; node.parent.position = CGPointMake(node.parent.position.x - cameraOffset.x, node.parent.position.y - cameraOffset.y); } 

极大地影响了子节点的相对定位。 只要此方法运行,子节点确实似乎受到影响。 下图显示了NO移动的逻辑,然后左移和稍移:

在这里输入图像说明 在这里输入图像说明

我画了一个浅蓝色的框来估计看起来path正在引用的物理体而不是更新的帧。 您所看到的线条和圆圈代表我用于寻路的两种方法。

  • 带点的线只是我正在做的射线testing,看看绿线上的光线是否与方形物理体相交。
  • 您在顶部看到的单点是使用GameplayKit来构build避开黑色方块作为障碍的path。

我正在努力想办法避免摄像机的重新定位,从而影响到现场儿童的定位。

仅供参考 :我已经通过移动字符而不是相机testing了寻路,它完美地工作(如下所示)

在这里输入图像说明

显然,相机偏移是问题。 如果有人能告诉我该怎么做,以保持相机的移动和寻路的精度,我将不胜感激。

Interesting Posts