Sprite kit如何修复移动相机?

时间:2014-03-22 16:19:21

标签: camera sprite-kit

我试图用我的代码绑定相机:

-(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:

1 个答案:

答案 0 :(得分:0)

您需要创建一个节点,其中包含播放器和用户界面中的所有内容。

例如,将其命名为worldNode。将它作为子项添加到场景中,并将所有内容添加到屏幕上,但对于播放器和ui来说。将player和ui作为孩子直接添加到场景中。

现在,当您需要移动播放器时,请移动worldNode。您可以计算在更新方法中移动玩家所需的金额,并将此负数应用于世界节点。这样它就能按你的意愿工作。