我有以下代码来移动SKSpriteNode
。
let moveDown = SKAction.moveBy(CGVectorMake(0, -120), duration: 1)
let moveUp = SKAction.moveBy(CGVectorMake(0, +120), duration: 1)
let moveSequence = SKAction.sequence([moveDown, moveUp])
square.runAction(SKAction.repeatActionForever(moveSequence))
这将永远上下移动SKSpriteNode
。有什么方法可以暂停这个SKAction
吗?所以SKSpriteNode
将冻结在它的当前位置,然后稍后当我决定,继续它的运动?
我只想暂停这个SKSpriteNode
的运动。我不想暂停SKScene
。只是这个1SKSpriteNode
的运动
3条答案
按热度按时间hc8w905p1#
你应该运行一个带有key的操作:
然后,使用action的speed属性暂停它:
或取消暂停:
brjng4g32#
@Whirlwind的答案的另一种选择是,如果你有一堆需要暂停的动作,这些动作不在一个组中,而不仅仅是移动,那就是暂停节点本身。所有SKNode都有一个与之关联的
paused
属性。例如
square.paused = true
**更新:**此属性现在为
isPaused
。此更改的示例如下所示:ghhkc1vu3#
SKNode.paused
已重命名为SKNode.isPaused
。您应该能够执行以下操作:
暂停动画:
重新启动动画: