SKSpriteNode 从屏幕上消失后如何删除或销毁它
Posted
技术标签:
【中文标题】SKSpriteNode 从屏幕上消失后如何删除或销毁它【英文标题】:How to remove or destroy SKSpriteNode once it disappears from screen 【发布时间】:2017-07-01 19:44:41 【问题描述】:我正在使用 Swift 3 制作 Flappy Bird 类游戏。我在函数“makePipes()”的帮助下生成管道,我用计时器每 3 秒调用一次。 “makePipes()”函数为管道生成 SKSpriteNode,并将它们从屏幕右侧移动到屏幕左侧。 我想做的是,在管道节点从屏幕上消失或完成从屏幕一侧到另一侧的移动后,将其销毁。
另一种解决方案是在管道从右向左移动后重新使用它们。
pipe1.run(movePipes)
self.pipe1.removeFromParent()
我尝试了上述解决方案,但它不起作用。它在屏幕上显示奇怪的闪烁线条,并且管道变得奇怪且随机放置而不是均匀放置。
感谢任何帮助。我对 ios 很陌生。
【问题讨论】:
【参考方案1】:你可以这样做:-
movePipesForward = SKAction.moveByX(-dx, y: 0 ,duration: duration)
removePipes = SKAction.removeFromParent()
moveForwardAndRemove = SKAction.sequence([movePipesForward, removePipes])
pipe1.runAction(moveForwardAndRemove)
self.addChild(pipe)
【讨论】:
完美运行。虽然,我是否可以使用非重复计时器来调用另一个函数,该函数在所需时间后移除管道? 如果管道的移动和时间同步,则可以在所需的时间后移除管道,这更多的是命中和试验..以上是关于SKSpriteNode 从屏幕上消失后如何删除或销毁它的主要内容,如果未能解决你的问题,请参考以下文章