执行动作时让spritenode比例变大?
Make spritenode scale to be larger while executing action?
所以我有一个名为 savior
的精灵,最初设置为这个大小:savior.setScale(0.2)
当用户触摸屏幕时,执行:
savior.runAction(SKAction.repeatActionForever(stopSaviorAnimate))
savior.runAction(SKAction.sequence([diagonalRight,
SKAction.runBlock({
let Touchdelay = 0.75 * Double(NSEC_PER_SEC)
let Touchtime = dispatch_time(DISPATCH_TIME_NOW, Int64(Touchdelay))
//during delay
dispatch_after(Touchtime, dispatch_get_main_queue()) {
//after delay
self.savior.runAction(backToPlace)
self.savior.runAction(SKAction.repeatActionForever(startUpSavior))
}
})
]))
随着 diagonalRight
的执行(不是之后或之前,同时执行),我需要精灵 "grow" 或逐步缩放以达到 0.3
的比例延迟。
我曾尝试在延迟期间写入 savior.setScale(0.3)
,但精灵没有变大 - 它只是在 diagonalRight
发生后立即捕捉到缩放到 0.3,这不是我需要的。
我该怎么做?
对于缩放动画,您可以使用 scaleTo
SKAction
。
let scale : CGFloat = 0.3
let duration : NSTimeInterval = 1.0
let scaleAction = SKAction.scaleTo(scale, duration: duration)
node.runAction(scaleAction)
所以我有一个名为 savior
的精灵,最初设置为这个大小:savior.setScale(0.2)
当用户触摸屏幕时,执行:
savior.runAction(SKAction.repeatActionForever(stopSaviorAnimate))
savior.runAction(SKAction.sequence([diagonalRight,
SKAction.runBlock({
let Touchdelay = 0.75 * Double(NSEC_PER_SEC)
let Touchtime = dispatch_time(DISPATCH_TIME_NOW, Int64(Touchdelay))
//during delay
dispatch_after(Touchtime, dispatch_get_main_queue()) {
//after delay
self.savior.runAction(backToPlace)
self.savior.runAction(SKAction.repeatActionForever(startUpSavior))
}
})
]))
随着 diagonalRight
的执行(不是之后或之前,同时执行),我需要精灵 "grow" 或逐步缩放以达到 0.3
的比例延迟。
我曾尝试在延迟期间写入 savior.setScale(0.3)
,但精灵没有变大 - 它只是在 diagonalRight
发生后立即捕捉到缩放到 0.3,这不是我需要的。
我该怎么做?
对于缩放动画,您可以使用 scaleTo
SKAction
。
let scale : CGFloat = 0.3
let duration : NSTimeInterval = 1.0
let scaleAction = SKAction.scaleTo(scale, duration: duration)
node.runAction(scaleAction)