Ios 如何删除或销毁从屏幕上消失的SKSpriteNode

Ios 如何删除或销毁从屏幕上消失的SKSpriteNode,ios,swift,swift3,sprite-kit,Ios,Swift,Swift3,Sprite Kit,我正在用Swift 3制作一个类似于Flappy Bird的游戏。我在“makePipes()”函数的帮助下生成管道,我用计时器每3秒调用一次该函数。“makePipes()”函数为管道生成SKSpriteNode,并将其从屏幕右侧移动到屏幕左侧。 我想做的是,在管道节点从屏幕上消失后,或者在管道节点完成从屏幕一侧到另一侧的移动后,销毁管道节点 另一个解决方案是在管道从右向左移动后重新使用 pipe1.run(movePipes) { self.pipe1.removeFrom

我正在用Swift 3制作一个类似于Flappy Bird的游戏。我在“makePipes()”函数的帮助下生成管道,我用计时器每3秒调用一次该函数。“makePipes()”函数为管道生成SKSpriteNode,并将其从屏幕右侧移动到屏幕左侧。 我想做的是,在管道节点从屏幕上消失后,或者在管道节点完成从屏幕一侧到另一侧的移动后,销毁管道节点

另一个解决方案是在管道从右向左移动后重新使用

pipe1.run(movePipes) { 
        self.pipe1.removeFromParent()
    }
我尝试了上述解决方案,但它不起作用。它在屏幕上显示了奇怪的闪烁线条,管道变得古怪而随机,而不是统一的


感谢您的帮助。我对iOS非常陌生。

你本可以这样做:-

movePipesForward = SKAction.moveByX(-dx, y: 0 ,duration: duration)
removePipes = SKAction.removeFromParent()
moveForwardAndRemove = SKAction.sequence([movePipesForward, removePipes])
pipe1.runAction(moveForwardAndRemove)
self.addChild(pipe)

工作得很好。尽管如此,我是否可以使用非重复计时器调用另一个在所需时间后移除管道的函数?如果管道的移动与时间同步,则在所需时间后移除管道可以正常工作,这更像是一次尝试。。