Ios 使用SpriteKit摄影机节点防止位置偏移
我注意到,Ios 使用SpriteKit摄影机节点防止位置偏移,ios,camera,sprite-kit,path-finding,gameplay-kit,Ios,Camera,Sprite Kit,Path Finding,Gameplay Kit,我注意到,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 -
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);
}
极大地影响子节点的相对位置。一旦此方法运行,子节点实际上似乎会受到影响。下图显示了不移动的逻辑,然后向左移动并稍微向下移动:
我画了一个浅蓝色的框来估计物理体,它看起来是路径引用的,而不是更新的帧。您看到的线和圆表示我用于寻路的两种方法
- 带点的线只是光线测试,我正在做,看看沿着绿线的光线是否与正方形的物理体相交李>
- 您在上角看到的一个点是使用
构建一条路径,避免将黑色正方形作为障碍物GameplayKit
显然,相机偏移是问题所在。如果有人能告诉我如何保持摄像机的移动和寻路的精确性,我将不胜感激 你有没有试着让点击框看看你的物理身体是否正确?是的。他们是对的。我确实找到了一个解决方法-我只是跟踪相机偏移,并将其添加到我评估的点上,并且它可以工作…但仅在
GameplayKit
方法的模拟器上(我的pathfinder在这两种方法上都可以正常工作)。这是另一种情况,模拟器的行为与我的设备完全不同。非常恼人。它只是一个模拟器,不是模拟器,因此%的错误更大。loli甚至无法让GameplayKit方法在设备上运行,但在模拟器上就可以了。讨厌模拟器。。不要移动场景来模拟摄影机,尤其是涉及物理实体时。如果您需要GameplayKit,您的最低操作系统还支持SKCameraNode
。用它来代替。你有没有试着启用点击框来查看你的物理实体是否正确?是的,我有。他们是对的。我确实找到了一个解决方法-我只是跟踪相机偏移,并将其添加到我评估的点上,并且它可以工作…但仅在GameplayKit
方法的模拟器上(我的pathfinder在这两种方法上都可以正常工作)。这是另一种情况,模拟器的行为与我的设备完全不同。非常恼人。它只是一个模拟器,不是模拟器,因此%的错误更大。loli甚至无法让GameplayKit方法在设备上运行,但在模拟器上就可以了。讨厌模拟器。。不要移动场景来模拟摄影机,尤其是涉及物理实体时。如果您需要GameplayKit,您的最低操作系统还支持SKCameraNode
。用它来代替。