SKAction scaleBy:duration:SpriteKit

时间:2013-12-03 15:47:45

标签: ios iphone objective-c sprite-kit 2d-games

我尝试使用[SKAction scaleBy: duration:]

制作一个大小的圆圈时遇到了麻烦
SKAction *scaleDown = [SKAction scaleBy:0.2 duration:1.8];  
SKAction *scaleUp= [scaleDown reversedAction];
SKAction *fullScale = [SKAction sequence:@[scaleDown, scaleUp, scaleDown, scaleUp]];
[_circleChanging runAction:fullScale];

我得到的是圆圈变得如此之小以至于消失然后又不会回来。它必须变小,然后再回到原来的大小做2次。

2 个答案:

答案 0 :(得分:3)

尝试:

  SKAction *scaleDown = [SKAction scaleTo:0.2 duration:0.75];
       SKAction *scaleUp= [SKAction scaleTo:1.0 duration:0.75];
       SKAction *fullScale = [SKAction repeatActionForever:[SKAction sequence:@[scaleDown, scaleUp, scaleDown, scaleUp]]];
       [_circleChanging runAction:fullScale];

答案 1 :(得分:2)

并非所有行动都是可逆的,反过来有时并不意味着“回到原始价值”。

如果你check the documentation,scaleBy的反向动作实际上是在你的情况下缩放到-0.2。只需创建一个新的缩放操作而不是反转。

同时尝试复制第二次使用的动作:

SKAction *fullScale = [SKAction sequence:
                       @[scaleDown, scaleUp, [scaleDown copy], [scaleUp copy]]];