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

时间:2017-07-01 19:44:42

标签: ios swift swift3 sprite-kit

我正在使用 Swift 3 制作 Flappy Bird 类型的游戏。我在函数'makePipes()'的帮助下生成了管道,我用一个计时器每3秒调用一次。 'makePipes()'函数为管道创建SKSpriteNode,并将它们从屏幕右侧移动到屏幕左侧。 我想要做的是,在屏幕消失之后或从屏幕的一侧完成从屏幕的移动到另一侧之后,销毁节点。

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

pipe1.run(movePipes) { 
        self.pipe1.removeFromParent()
    }

我尝试了上述解决方案并且无效。它在屏幕上显示出奇怪的闪烁线条,管道变得奇怪而随机地放置而不是均匀。

感谢任何帮助。我是iOS的新手。

1 个答案:

答案 0 :(得分:0)

你可以这样做: -

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