因此,我正在构建Sprite Kit游戏,并希望在某些时候启用/禁用某些节点上的重力。

我设法做到了,但我只是想知道是否有更好的方法来实现这一目标。

这是我的代码:

func enableGravity() {
    for rawBubble in container!.children {
        let bubble = rawBubble as SKShapeNode
        bubble.physicsBody?.dynamic = true
    }
}


当未在rawBubble上使用类型推断时,出现此错误:SKPhysicsBody? does not have a member named dynamic

我猜这不是与Sprite Kit相关的问题,而是更多Swift本身。有可能以更简单的方式做到这一点吗?

谢谢。

最佳答案

由于container!.children[AnyObject],因此您必须先强制​​转换其内容,然后才能对它们进行所有有用的操作。我能想到的最简洁的方法就是将其强制转换为[SKNode]语句中的for

func enableGravity() {
    for bubble in container!.children as [SKNode] {
        bubble.physicsBody?.dynamic = true
    }
}

关于swift - Sprite Kit和类型推断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26613187/

10-14 21:51