簡體   English   中英

SpriteKit SKAction緩和

[英]SpriteKit SKAction easing

好吧標題提出了問題,我如何將緩動應用於SpriteKit中的SKAction節點操作?

我發現這有效:

SKAction *moveAction = [SKAction moveByX:moveX y:moveY duration:0.5];
moveAction.timingMode = SKActionTimingEaseInEaseOut;
[node runAction:moveAction];

不過也有只提供一些緩和的類型存在 ,即線性,EaseIn,EaseOut,EaseInOut。

這些緩和值是固定的,不能改變。 我正在尋找像EleasticInOut這樣的東西。 最好有一點控制。 我該如何創建呢?

我一直在使用SKEase框架: https//github.com/buddingmonkey/SpriteKit-Easing它與標准的SpriteKit動作一樣簡單,並添加了所有通常更復雜的緩動,立方體,彈跳,彈性,背部等。 SpriteKitUtils還添加了更復雜的緩動類型和一些方便的SpriteKit實用程序: https//github.com/raywenderlich/SKTUtils

另一個選項是使用自定義操作方法自行滾動,並使用自定義緩動/動畫功能傳遞一段代碼:

-(SKAction *)customActionWithDuration:(NSTimeInterval)seconds actionBlock:(void (^)(SKNode *node, CGFloat elapsedTime))block

Apple在幾年前在UIKit中引入了彈簧動畫,讓你在執行UIView動畫時設置彈簧阻尼和初始速度。 不幸的是他們沒有在SpriteKit中實現它,所以我創建了自己的庫來做到這一點。

它是SKAction上的一組擴展,它復制了大多數工廠方法,添加了阻尼和速度參數。

代碼在GitHub上,隨意使用它: https//github.com/ataugeron/SpriteKit-Spring

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM