0
在我的游戏中,我有一种方法降低精灵。当用户丢失(gameStarted == false)时,我需要一种方法来删除我带入场景的所有这些节点。我试图通过简单地说出ball.removeFromParent()和使用底部的removeBalls函数两种方式来移除这些节点。两种方法都阻止未来的球进入现场,但并没有消除已经存在的球。如果有人有办法做到这一点,我会非常感激。删除存在的所有节点
override func didMoveToView(view: SKView) {
var create = SKAction.runBlock({() in self.createTargets()})
var wait = SKAction.waitForDuration(2)
var createAndWaitForever = SKAction.repeatActionForever(SKAction.sequence([create, wait])
self.runAction(createAndWaitForever)
}
func createTargets() {
ball = SKSpriteNode(imageNamed:"blueBlue")
let randomx = Int(arc4random_uniform(370) + 165)
ball.position = CGPoint(x: randomx, y: 1400)
addChild(ball)
let moveDown = SKAction.moveBy(CGVector(dx: 0, dy: -1300), duration: 7)
if gameStarted == false {
ball.removeAllActions()
ball.removeFromParent()
removeBalls([ball])
}
if gameStarted && spawnReady {
ball.runAction(moveDown)
if ball.parent == nil {
addChild(ball)
}
}
}
func removeBalls(balls : [SKSpriteNode]) {
for ball in balls {
ball.removeFromParent()
}
}
嗨,谢谢你的回复。我没有一个数组来跟踪我的节点。我想尝试你的代码,但不幸的是我无法将它翻译成swift。 –