![](/img/trans.png)
[英]How does SKAction scaleBy:duration: method works under the hood?
[英]SKAction scaleBy: duration: SpriteKit
我在使用[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次。
嘗試:
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];
並非所有行動都是可逆的,反過來有時並不意味着“回到原始價值”。
如果您查看文檔 ,scaleBy的反向操作實際上是在您的情況下縮放到-0.2。 只需創建一個新的縮放操作而不是反轉。
同時嘗試制作第二次使用的動作副本:
SKAction *fullScale = [SKAction sequence:
@[scaleDown, scaleUp, [scaleDown copy], [scaleUp copy]]];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.