移动除一个之外的所有SKSpriteNodes

时间:2015-02-28 18:04:36

标签: ios xcode swift sprite-kit

除了一个方向外,我怎样才能在视图中移动所有节点?我正在创建的游戏类型的一个例子是一种口袋妖怪的结构,其中屏幕中心的主角在中心保持静止并且所有背景物体都移动。

如果有人知道如何以最有效的方式完成这项工作,我将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在更新方法中,使用enumerateChildNodesWithName:usingBlock:并传递// *来枚举所有节点,然后在块内检查名称,如果它不是你不想要的那个移动,移动。

[self enumerateChildNodesWithName:@"//*" usingBlock:^(SKNode *node, BOOL *stop) {

    if (node.name != @"nameOfTheNodeYouDontWantToMove") {
        node.position = CGPointMake(node.position.x - 1, node.position.y);
    } 
}];

答案 1 :(得分:0)

通常的方法是将所有移动对象添加到worldNode,然后更改worldNode的位置。将角色分别添加到SKScene。

let worldNode = SKNode()
self.addChild(worldNode) // Add to SKScene
worldNode.addChild(childNode) //Add all nodes

//let character = SKSpriteNode 
character.position = centerOfScreen
self.addChild(character) // Add to SKScene

要移动所有精灵,请更改worldNode

的位置
worldNode.position = newPosition