我们需要在GameScene.swift中设置对象大小的动画。其他Stack Overflow帖子建议使用UIView.animateWithDuration
,但这在GameScene.swift内不可用。我们需要在游戏场景.swift内部设置动画,因为我们还需要访问SKAction才能永远运行一个动作。
现在,我们正在使用下面的代码,但它太笨重了。希望动画能在物体收缩时平滑物体的外观。
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(shrinkItem),
SKAction.waitForDuration(0.5)
])
))
func shrinkItem() {
let curWidth = item.size.width
if curWidth < 15 {
return
}
item.size = CGSize( width: CGFloat(item.size.width - 20 ), height: CGFloat(bird.size.height - 20) )
}
你想做的是缩小你的鸟,对吧?这相当于缩小规模。
为什么要在runBlock
中手动执行此操作?
您可能需要查看SKAction类参考:http://goo.gl/ycPYcF.在里面你会看到所有可能的动作,而scaleBy:duration:
(或另一个)可能就是你想要的。
let shrinkAction = SKAction.scaleBy(0.5, duration: 1.0)
let waitAction = SKAction.waitForDuration(0.5)
let sequenceAction = SKAction.sequence([shrinkAction, waitAction])
let repeatAction = SKAction.repeatActionForever(sequenceAction)
self.yourBirdNode.runAction(repeatAction)
根据您接下来要做的操作,请注意有些操作是自动可逆的(通过reversedAction
),有些则不是