Ios SKAction scaleBy:持续时间:SpriteKit
我很难用Ios SKAction scaleBy:持续时间:SpriteKit,ios,iphone,objective-c,sprite-kit,2d-games,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 ru
[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];
我得到的是圆变得很小,消失了,然后再也没有回来。它必须变小,然后再回到原来的大小,重复两次。并非所有的动作都是可逆的,相反的动作有时并不意味着“回到原来的值”
如果需要,scaleBy的反向操作实际上是在您的情况下缩放到-0.2。只需创建一个新的缩放动作,而不是反转
还可以尝试制作一份操作副本,以供第二次使用:
SKAction *fullScale = [SKAction sequence:
@[scaleDown, scaleUp, [scaleDown copy], [scaleUp copy]]];
尝试:
好的,我已经改变了:SKAction*scaleUp=[scaleDown reversedAction];By:SKAction*scaleUp=[SKAction-scaleBy:3.0持续时间:1.8];我仍然有同样的主要问题,圆圈变小了,消失了。检查我的更新,也许这与在序列中多次使用相同的动作有关,这些动作可能需要复制(更多的是猜测),所以你的意思是,圆圈继续缩小,直到你看不到为止,而不是停止在0.2的比例因子,并缩放回其原始大小?谢谢。这本应该是显而易见的,但我一直坚信reversedAction
会做我想做的事情。
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];