我试图用我的代码绑定相机:
-(void)didSimulatePhysics {
[self centerOnNode: player];
}
-(void)centerOnNode: (SKNode *) node {
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position fromNode:node.parent];
node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x, node.parent.position.y - camerapositionInScene.y);
}
但除了获得这样的输出之外没有任何事情发生:
Setting the position of a SKScene has no effect.
2014-03-22 16:55:35.604 Jelly Jumper [5801:90b] SKScene:
Setting the position of a SKScene has no effect.
2014-03-22 16:55:35.753 Jelly Jumper [5801:90b] SKScene:
Setting the position of a SKScene has no effect.
2014-03-22 16:55:35.907 Jelly Jumper [5801:90b] SKScene:
答案 0 :(得分:0)
您需要创建一个节点,其中包含播放器和用户界面中的所有内容。
例如,将其命名为worldNode。将它作为子项添加到场景中,并将所有内容添加到屏幕上,但对于播放器和ui来说。将player和ui作为孩子直接添加到场景中。
现在,当您需要移动播放器时,请移动worldNode。您可以计算在更新方法中移动玩家所需的金额,并将此负数应用于世界节点。这样它就能按你的意愿工作。