使用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了寻路,它完美地工作(如下所示)
显然,相机偏移是问题。 如果有人能告诉我该怎么做,以保持相机的移动和寻路的精度,我将不胜感激。