我有一个节点在视图中掉落。一旦它在视图之外,我需要删除它,以便我可以使用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()
}
}
答案 0 :(得分:1)
我发现最简单的方法是在屏幕底部添加一个新的SKNode
并使用与它的碰撞来删除你的点。创建一个空白SKNode
并将其位置略微偏离屏幕,其宽度等于场景宽度。然后设置contactTestBitMask
,以便您知道点何时与节点发生冲突。然后删除didBeginContact(SKPhysicsContact: contact)
方法