所以我正在构建一个 Sprite Kit 游戏,在某个时刻我想在某些节点上启用/禁用重力。
我设法做到了,但我只是想知道是否有更好的方法来实现这一目标。
这是我的代码:
func enableGravity() {
for rawBubble in container!.children {
let bubble = rawBubble as SKShapeNode
bubble.physicsBody?.dynamic = true
}
}
当不对 rawBubble 使用类型推断时,我收到此错误:SKPhysicsBody?没有名为dynamic的成员
我想这实际上并不是 Sprite Kit 相关的问题,而是 Swift 本身的问题。是否有可能以更简单的方式做到这一点?
谢谢。
最佳答案
由于 container!.children
是一个 [AnyObject]
,因此您必须先转换其内容,然后才能对其进行任何有用的操作。我能想到的最简洁的方法就是将其强制转换为 for
语句中的 [SKNode]
:
func enableGravity() {
for bubble in container!.children as [SKNode] {
bubble.physicsBody?.dynamic = true
}
}
关于swift - Sprite Kit 和类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613187/