2013-09-30 11 views
14

Nun, der Titel gibt die Frage weg, wie kann ich Beschleunigung auf die SKAction Knoten Aktionen in SpriteKit anwenden?SpriteKit SKAction Beschleunigung

fand ich, dass dies funktioniert:

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

jedoch nur wenige Lockerung Arten there es gibt, nämlich Linear, easeIn, easeOut, EaseInOut.

Und diese Beschleunigungswerte sind fest und können nicht geändert werden. Ich suche nach etwas wie EleasticInOut. Mit etwas mehr Kontrolle. Wie kann ich das schaffen?

+0

Aktion Modi Timing-aufgelistet sind unter Konstanten erraten stecken wir mit dem, was Apple hat jetzt – DogCoffee

+1

ich denke, Sie eine benutzerdefinierte Aktion für that.Also sollte ich verwenden Denken Sie, Ihre Frage ist bereits auf diesem Thread beantwortet http://StackOverflow.com/Questions/19026895/How-To-Apply-Different-Eseasing-Effects-to-Sprite-Action – lionserdar

+0

Wer weiß, wie man Lockerungen auf einem vollständig deaktivieren SkAktion? Ich würde denken, dass dies eine ziemlich wichtige Eigenschaft ist, aber vielleicht nicht ... – ObjectiveCsam

Antwort

14

Ich habe den SKEase Rahmen wurde mit: https://github.com/buddingmonkey/SpriteKit-Easing Es ist so einfach wie die Standard-SpriteKit Aktionen verwenden und fügt alle üblichen komplexere Vereinfacht, kubisch, bounce, elastisch, zurück usw. SpriteKitUtils fügt auch komplexere Lockerung Typen und einige praktische SpriteKit Dienstprogramme: https://github.com/raywenderlich/SKTUtils

die andere Option ist Ihre eigene mit der benutzerdefinierten Aktionsmethode rollen, und es einen Code-Block mit Ihrer benutzerdefinierten Lockerung/Animation-Funktion übergeben:

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

Apple hat vor ein paar Jahren in UIKit Federanimationen eingeführt, bei denen Sie eine Federdämpfung und Anfangsgeschwindigkeit einstellen können, wenn Sie eine UIView-Animation ausführen. Leider haben sie das in SpriteKit nicht implementiert, also habe ich meine eigene Bibliothek erstellt, die genau das tut.

Es ist eine Reihe von Erweiterungen auf SKAction, die die meisten Fabrikmethoden replizieren und die Dämpfungs- und Geschwindigkeitsparameter hinzufügen.

Der Code ist auf GitHub, fühlen Sie sich frei, es zu benutzen: https://github.com/ataugeron/SpriteKit-Spring

+0

Toll, thx für SpriteKit-Spring! – sabiland