检查节点是否为 SKShapeNodes

Checking if Nodes are SKShapeNodes

在我的简单游戏中,我需要在下一步发生之前移除所有 SKShapeNodes。这是我的代码:

for child in self.children(){
    if(child==SKShapeNode(){
        child.removeFromParent()
    }
}

这不起作用,因为 Xcode 不知道如何处理 child 的 class。 Xcode 要我添加

as! NSObject

在 child 到 "force downcast" 之后。这也行不通。我认为这是因为现在 child 将始终是 NSObject,而不是 SKShapeNode。

我该如何解决这个问题?我确信这很简单,但我似乎无法自己解决这个问题。

您可以按如下方式进行:

for child in parent.children //in you case, self is the parent
{
    if let child = child as? SKShapeNode
    {
        child.removeFromParent()
    }
}