我试图通过循环运行它们来重复一组操作。运行其他东西时我的循环很好,但似乎无法运行动作。我的代码如下:
let pulse1 = SKAction.scaleTo(2.0, duration: 1.0)
let pulse2 = SKAction.scaleTo(0.5, duration: 1.0)
var i = 0
override func didMoveToView(view: SKView) {
for var i = 0; i <= 100; i++ {
self.sun.runAction(pulse1)
self.sun.runAction(pulse2)
}
这将导致节点每次脉冲1和脉冲2,但不会再次。如果我添加
println("")
循环,它正确运行任何文本,但由于某种原因不运行像运行文本的操作。或许它确实如此,我不明白SKAction是如何工作的?无论哪种方式,循环正在执行,我相信。我不太确定循环中的SKAction调用有什么问题。
答案 0 :(得分:0)
scaleTo
只是更改节点的比例。一旦pulse1变为2.0并且pulse2变为0.5,runAction
会反复运行,但您永远不会再次更改任何脉冲的比例。
这就是为什么你只是第一次看到它确实有效。
不要使用for循环,请尝试以下方法:
override func didMoveToView(view: SKView) {
if (i % 2 == 0) {
let pulse = SKAction.scaleTo(2.0, duration: 1.0)
} else {
let pulse = SKAction.scaleTo(0.5, duration: 1.0)
}
[self.sun runAction:pulse completion:^{
if( i < 100 )
{
didMoveToView(view);
}
}];
}
答案 1 :(得分:0)