具有以下代码,当两个对象发生碰撞时运行。
var A = SKAction.scaleBy(0.1, duration: 0.52)
vanish.runAction(A)
第1行正在运行缩放操作,第2行正在对我想要的对象运行该缩放操作。
但是,如何在END动作中运行一些代码呢?比如,将分数从0改为1?
目前我有这样的事情:
var A = SKAction.scaleBy(0.1, duration: 0.52)
vanish.runAction(A)
score = 1
但这并不等待行动结束。
我知道我需要使用action.sequence。我有这个。但我不知道如何写一个行动,上面写着“将变量值从0改为1”
谢谢你们:D
答案 0 :(得分:1)
您有两个选择:您可以将完成块传递给runAction
,SKAction
完成后执行。来自documentation for SKNode
:
func runAction(_ action: SKAction!, completion block: (() -> Void)!)
然后您可以这样使用:
vanish.runAction(A) {
score = 1
// If `score` is a property of your class you'll need to use self.score
}
或者,您可以使用SKAction.runBlock
并使用SKAction
的序列,例如:
let scale = SKAction.scaleBy(0.1, duration: 0.52)
let complete = SKAction.runBlock { score = 1 }
vanish.runAction(SKAction.sequence([scale, complete]))
希望有所帮助!