当节点不在视图中时,如何删除节点?

时间:2015-05-05 21:00:39

标签: iphone xcode swift ios8 skspritenode

我有一个节点在视图中掉落。一旦它在视图之外,我需要删除它,以便我可以使用if语句来调用函数来放置另一个。当它不再可见时如何删除它?它目前只调用该函数一次。

这是功能:

func dot() {
    var dotTexture = SKTexture (imageNamed: "dot")
    dotTexture.filteringMode = SKTextureFilteringMode.Nearest

    var dot = SKSpriteNode(texture: dotTexture)
    dot.setScale(0.5)
    dot.position = CGPoint(x: self.frame.size.width * 0.5 , y: self.frame.size.height * 1.1)

    dot.physicsBody = SKPhysicsBody (circleOfRadius: dot.size.height/2.0)
    dot.physicsBody?.dynamic = true
    dot.physicsBody?.allowsRotation = false

    self.addChild(dot)

    println("done")
}

这是调用函数的if语句:

 override func update(currentTime: CFTimeInterval) {
    /* Called before each frame is rendered */
    if self.children.count == 0 {
        dot()
    }
}

1 个答案:

答案 0 :(得分:1)

我发现最简单的方法是在屏幕底部添加一个新的SKNode并使用与它的碰撞来删除你的点。创建一个空白SKNode并将其位置略微偏离屏幕,其宽度等于场景宽度。然后设置contactTestBitMask,以便您知道点何时与节点发生冲突。然后删除didBeginContact(SKPhysicsContact: contact)方法

中的点