移动除一个之外的所有 SKSpriteNode
Move all SKSpriteNodes except one
除了一个节点之外,我怎样才能在同一方向上移动视图中的所有节点?我正在创建的游戏类型的一个例子是口袋妖怪类型的结构,其中屏幕中央的主要角色在中央保持静止,所有背景对象移动。
如果有人知道我如何以最有效的方式完成此任务,我将不胜感激。
提前致谢。
在更新方法中,使用enumerateChildNodesWithName:usingBlock:并传递//*来枚举所有节点,然后在块内检查名称,如果不是您不想移动的名称,移动。
[self enumerateChildNodesWithName:@"//*" usingBlock:^(SKNode *node, BOOL *stop) {
if (node.name != @"nameOfTheNodeYouDontWantToMove") {
node.position = CGPointMake(node.position.x - 1, node.position.y);
}
}];
通常的做法是将所有移动对象添加到一个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
除了一个节点之外,我怎样才能在同一方向上移动视图中的所有节点?我正在创建的游戏类型的一个例子是口袋妖怪类型的结构,其中屏幕中央的主要角色在中央保持静止,所有背景对象移动。
如果有人知道我如何以最有效的方式完成此任务,我将不胜感激。
提前致谢。
在更新方法中,使用enumerateChildNodesWithName:usingBlock:并传递//*来枚举所有节点,然后在块内检查名称,如果不是您不想移动的名称,移动。
[self enumerateChildNodesWithName:@"//*" usingBlock:^(SKNode *node, BOOL *stop) {
if (node.name != @"nameOfTheNodeYouDontWantToMove") {
node.position = CGPointMake(node.position.x - 1, node.position.y);
}
}];
通常的做法是将所有移动对象添加到一个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