我正在尝试获取 GameScene 的所有子项(通过名称标识)以便与设备同步旋转一些 SKSpriteNode。
目前我有这段代码:
override func update(currentTime: CFTimeInterval) {
if manager.deviceMotionAvailable {
manager.deviceMotionUpdateInterval = 0.01
manager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue()) {
[weak self] (data: CMDeviceMotion!, error: NSError!) in
let rotation = atan2(data.gravity.x, data.gravity.y) - M_PI
for (var i = 1 ; i < self?.children.count ; i++){
var child = ??? // How can I get the child i
if (child.name == 'Monster'){
let action = SKAction.rotateByAngle(CGFloat(DegreesToRadians(rotation)), duration:0)
child.runAction(action)
}
}
}
}
}
我怎样才能得到 child 我?这是做这件事的好方法吗?否则,我可以处理一个数组列表,并将我所有的 child 都添加到 GameScene 中...
最佳答案
在 swift 中,您可以使用以下方法枚举具有特定名称的所有子节点:
enumerateChildNodesWithName("Monster", usingBlock: {
let action = SKAction.rotateByAngle(CGFloat(DegreesToRadians(rotation)), duration:0)
child.runAction(action)
}
关于ios - 获取 GameScene 的所有 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402192/