使用 Swift 在 Spritekit 中暂停 SKAction
Pause an SKAction in Spritekit with Swift
我有以下代码来移动 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
。就这1的动静SKSpriteNode
您应该 运行 一个带有键的操作:
square.runAction(SKAction.repeatActionForever(moveSequence), withKey:"moving")
然后,使用动作的速度属性暂停它:
if let action = square.actionForKey("moving") {
action.speed = 0
}
或取消暂停:
action.speed = 1
@Whirlwind 的答案的替代方法是,如果您有一堆需要暂停的动作不在一个组中,而不仅仅是运动,则只需暂停节点本身。所有 SKNode 都有一个 paused
属性 与之关联。
例如。
square.paused = true
SCNNode.paused 已重命名为 SNCNode.isPaused。
您应该能够执行以下操作
暂停动画:
square.isPause=真
重启动画:
square.isPaused=假
我有以下代码来移动 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
。就这1的动静SKSpriteNode
您应该 运行 一个带有键的操作:
square.runAction(SKAction.repeatActionForever(moveSequence), withKey:"moving")
然后,使用动作的速度属性暂停它:
if let action = square.actionForKey("moving") {
action.speed = 0
}
或取消暂停:
action.speed = 1
@Whirlwind 的答案的替代方法是,如果您有一堆需要暂停的动作不在一个组中,而不仅仅是运动,则只需暂停节点本身。所有 SKNode 都有一个 paused
属性 与之关联。
例如。
square.paused = true
SCNNode.paused 已重命名为 SNCNode.isPaused。
您应该能够执行以下操作
暂停动画:
square.isPause=真
重启动画:
square.isPaused=假