У меня есть узел, падающий на вид. Как только он находится за пределами представления, мне нужно удалить его, чтобы я мог использовать оператор 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")
}
И это утверждение, если, что вызывает функцию:
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
if self.children.count == 0 {
dot()
}
}
имеет смысл, спасибо! –
Я использую это при работе с гравитацией. Когда вы говорите «SKAction», который перемещает спрайт за кадром, я добавляю действие «SKAction removeFromParent» с действием движения, чтобы создать последовательность, где, когда я покидаю экран, он удаляет узел. Просто базовая математика для этих вычислений. –