SpriteKit(SKAction)節(jié)點的動作

SKAction

SKAction是一個動作,通過SKScene場景中的節(jié)點執(zhí)行(runAction),將動作綁定到節(jié)點,可以改變節(jié)點的結(jié)構(gòu)和內(nèi)容,也可以改變場景

基礎屬性

@property (nonatomic) NSTimeInterval duration;//動畫時間
@property (nonatomic) SKActionTimingMode timingMode;//控制動畫速度曲線的設置。
@property (nonatomic) SKActionTimingFunction timingFunction;//用于自定義計時功能的塊。
@property (nonatomic) CGFloat speed;//修改動作運行速度的速度因素。
- (SKAction *)reversedAction;//創(chuàng)建一個動作,該動作逆轉(zhuǎn)另一個動作的行為

SKActions

移動
+ (SKAction *)moveBy:(CGVector)delta duration:(NSTimeInterval)duration;//創(chuàng)建一個相對于其當前位置移動節(jié)點的動作。
+ (SKAction *)moveByX:(CGFloat)deltaX y:(CGFloat)deltaY duration:(NSTimeInterval)duration;//創(chuàng)建一個相對于其當前位置移動節(jié)點的動作。
+ (SKAction *)moveTo:(CGPoint)location duration:(NSTimeInterval)duration;//創(chuàng)建一個將節(jié)點移動到新位置的動作。
+ (SKAction *)moveToX:(CGFloat)x duration:(NSTimeInterval)duration;//創(chuàng)建一個水平移動節(jié)點的動作。
+ (SKAction *)moveToY:(CGFloat)y duration:(NSTimeInterval)duration;//創(chuàng)建一個垂直移動節(jié)點的動作。
旋轉(zhuǎn)
+ (SKAction *)rotateByAngle:(CGFloat)radians duration:(NSTimeInterval)duration;//創(chuàng)建一個以相對值旋轉(zhuǎn)節(jié)點的動作。
+ (SKAction *)rotateToAngle:(CGFloat)radians duration:(NSTimeInterval)duration;//創(chuàng)建將節(jié)點逆時針旋轉(zhuǎn)到絕對角度的動作。
+ (SKAction *)rotateToAngle:(CGFloat)radians duration:(NSTimeInterval)duration shortestUnitArc:(BOOL)shortestUnitArc;//創(chuàng)建將節(jié)點旋轉(zhuǎn)到絕對值的操作。shortestUnitArc,是不是以最小的轉(zhuǎn)動角度轉(zhuǎn)動
調(diào)整大小
+ (SKAction *)resizeByWidth:(CGFloat)width height:(CGFloat)height duration:(NSTimeInterval)duration;//一個調(diào)整精靈大小的動作。
+ (SKAction *)resizeToWidth:(CGFloat)width height:(CGFloat)height duration:(NSTimeInterval)duration;//將精靈的寬度和高度更改為新的絕對值。
+ (SKAction *)resizeToWidth:(CGFloat)width duration:(NSTimeInterval)duration;//將精靈的寬度更改為新的絕對值。
+ (SKAction *)resizeToHeight:(CGFloat)height duration:(NSTimeInterval)duration;//將精靈的高度更改為新的絕對值。
縮放
+ (SKAction *)scaleBy:(CGFloat)scale duration:(NSTimeInterval)duration;//通過相對值更改節(jié)點的 x 和 y 比例值的操作
+ (SKAction *)scaleXBy:(CGFloat)xScale y:(CGFloat)yScale duration:(NSTimeInterval)duration;//創(chuàng)建將相對值添加到節(jié)點的 x 和 y 比例值的操作。
+ (SKAction *)scaleTo:(CGFloat)scale duration:(NSTimeInterval)duration;//創(chuàng)建一個更改節(jié)點的 x 和 y 比例值的操作。
+ (SKAction *)scaleXTo:(CGFloat)xScale y:(CGFloat)yScale duration:(NSTimeInterval)duration;//創(chuàng)建一個更改節(jié)點的 x 和 y 比例值的操作。
+ (SKAction *)scaleXTo:(CGFloat)scale duration:(NSTimeInterval)duration;//創(chuàng)建將節(jié)點的 x 比例值更改為新值的操作。
+ (SKAction *)scaleYTo:(CGFloat)scale duration:(NSTimeInterval)duration;//創(chuàng)建將節(jié)點的 y 比例值更改為新值的操作。
+ (SKAction *)scaleToSize:(CGSize)size duration:(NSTimeInterval)duration;//創(chuàng)建一個動作來改變節(jié)點的 x 和 y 比例值以實現(xiàn)。
動作組
+ (SKAction *)sequence:(NSArray<SKAction*> *)actions;//按順序執(zhí)行的動作組。
+ (SKAction *)group:(NSArray<SKAction*> *)actions;//并行運行一組動作的動作。
+ (SKAction *)repeatAction:(SKAction *)action count:(NSUInteger)count;//將一個動作重復執(zhí)行一定次數(shù)的動作。
+ (SKAction *)repeatActionForever:(SKAction *)action;//將一個動作無限重復的動作。
淡入淡出
+ (SKAction *)fadeInWithDuration:(NSTimeInterval)duration;//淡入
+ (SKAction *)fadeOutWithDuration:(NSTimeInterval)duration;//淡出
+ (SKAction *)fadeAlphaBy:(CGFloat)factor duration:(NSTimeInterval)duration;//更改透明度。相對倍數(shù)。
+ (SKAction *)fadeAlphaTo:(CGFloat)alpha duration:(NSTimeInterval)duration;//更改透明度。絕對值。
隱藏顯示
+ (SKAction *)hide;//使節(jié)點不可見
+ (SKAction *)unhide;//使節(jié)點可見
改變精靈紋理
+ (SKAction *)setTexture:(SKTexture *)texture;//創(chuàng)建一個改變精靈紋理的動作。
+ (SKAction *)setTexture:(SKTexture *)texture resize:(BOOL)resize;//創(chuàng)建一個改變精靈紋理的動作,可能會調(diào)整精靈的大小。
+ (SKAction *)animateWithTextures:(NSArray<SKTexture*> *)textures timePerFrame:(NSTimeInterval)sec;//創(chuàng)建一個動作,以動畫方式更改精靈的紋理。
+ (SKAction *)animateWithTextures:(NSArray<SKTexture*> *)textures timePerFrame:(NSTimeInterval)sec resize:(BOOL)resize restore:(BOOL)restore;//創(chuàng)建一個動作,動畫改變精靈的紋理,可能調(diào)整精靈的大小。

+ (SKAction *)setNormalTexture:(SKTexture *)texture;//創(chuàng)建一個改變精靈正常紋理的動作。
+ (SKAction *)setNormalTexture:(SKTexture *)texture resize:(BOOL)resize;//創(chuàng)建一個改變精靈正常紋理的動作,可能會調(diào)整精靈的大小。
+ (SKAction *)animateWithNormalTextures:(NSArray<SKTexture*> *)textures timePerFrame:(NSTimeInterval)sec;//創(chuàng)建一個動作,動畫對精靈的正常紋理的變化。
+ (SKAction *)animateWithNormalTextures:(NSArray<SKTexture*> *)textures timePerFrame:(NSTimeInterval)sec resize:(BOOL)resize restore:(BOOL)restore;//創(chuàng)建一個動作,以動畫方式更改精靈的紋理。

+ (SKAction *)playSoundFileNamed:(NSString*)soundFile waitForCompletion:(BOOL)wait;//創(chuàng)建一個播放聲音的動作。

+ (SKAction *)colorizeWithColor:(SKColor *)color colorBlendFactor:(CGFloat)colorBlendFactor duration:(NSTimeInterval)duration;//創(chuàng)建一個動畫,為精靈的顏色和混合因子設置動畫。
+ (SKAction *)colorizeWithColorBlendFactor:(CGFloat)colorBlendFactor duration:(NSTimeInterval)sec;//創(chuàng)建一個動作,為精靈的混合因子設置動畫。
改變精靈物理屬性
+ (SKAction *)falloffTo:(float)falloff duration:(NSTimeInterval)duration;//為物理場衰減的變化設置動畫。
+ (SKAction *)falloffBy:(float)falloff duration:(NSTimeInterval)duration;//該動作將物理場衰減更改為相對于現(xiàn)有值的值。

+ (SKAction *)followPath:(CGPathRef)path duration:(NSTimeInterval)duration;//創(chuàng)建一個沿相對路徑移動節(jié)點的動作,將節(jié)點定向到路徑。
+ (SKAction *)followPath:(CGPathRef)path asOffset:(BOOL)offset orientToPath:(BOOL)orient duration:(NSTimeInterval)duration;//創(chuàng)建沿路徑移動節(jié)點的操作。//是否相對于節(jié)點的起始位置。//是否Z軸旋轉(zhuǎn)。
+ (SKAction *)followPath:(CGPathRef)path speed:(CGFloat)speed;//創(chuàng)建一個沿相對路徑移動節(jié)點的動作,將節(jié)點定向到路徑。
+ (SKAction *)followPath:(CGPathRef)path asOffset:(BOOL)offset orientToPath:(BOOL)orient speed:(CGFloat)speed;//創(chuàng)建一個沿相對路徑移動節(jié)點的動作,將節(jié)點定向到路徑。//是否相對于節(jié)點的起始位置。//是否Z軸旋轉(zhuǎn)

+ (SKAction *)speedBy:(CGFloat)speed duration:(NSTimeInterval)duration;//該動作改變節(jié)點執(zhí)行動作的速度
+ (SKAction *)speedTo:(CGFloat)speed duration:(NSTimeInterval)duration;//該動作改變節(jié)點執(zhí)行動作的速度

+ (SKAction *)reachTo:(CGPoint)position rootNode:(SKNode *)root duration:(NSTimeInterval)duration;//創(chuàng)建執(zhí)行逆運動學到達的動作。
+ (SKAction *)reachTo:(CGPoint)position rootNode:(SKNode *)root velocity:(CGFloat)velocity;//創(chuàng)建執(zhí)行逆運動學到達的動作。
+ (SKAction *)reachToNode:(SKNode *)node rootNode:(SKNode *)root duration:(NSTimeInterval)sec;//創(chuàng)建執(zhí)行逆運動學到達的動作。
+ (SKAction *)reachToNode:(SKNode *)node rootNode:(SKNode *)root velocity:(CGFloat)velocity;//創(chuàng)建執(zhí)行逆運動學到達的動作。

+ (SKAction *)strengthTo:(float)strength duration:(NSTimeInterval)duration ;//創(chuàng)建一個設置字段強度的動作。
+ (SKAction *)strengthBy:(float)strength duration:(NSTimeInterval)duration ;//創(chuàng)建一個設置字段強度的動作。

+ (SKAction *)waitForDuration:(NSTimeInterval)duration;//創(chuàng)建一個空閑一段時間的動作。
+ (SKAction *)waitForDuration:(NSTimeInterval)duration withRange:(NSTimeInterval)durationRange;//創(chuàng)建一個空閑一段時間的動作。

+ (SKAction *)removeFromParent;//從其父節(jié)點中移除的操作。
+ (SKAction *)performSelector:(SEL)selector onTarget:(id)target;//創(chuàng)建一個調(diào)用對象方法的動作。
+ (SKAction *)runBlock:(dispatch_block_t)block;//創(chuàng)建一個執(zhí)行塊的動作。
+ (SKAction *)runBlock:(dispatch_block_t)block queue:(dispatch_queue_t)queue;//創(chuàng)建一個執(zhí)行塊的動作。操作隊列。

+ (SKAction *)runAction:(SKAction *)action onChildWithName:(NSString*)name;//創(chuàng)建一個在指定子對象上運行操作的操作。

+ (SKAction *)customActionWithDuration:(NSTimeInterval)duration actionBlock:(void (^)(SKNode *node, CGFloat elapsedTime))block;//創(chuàng)建一個在持續(xù)時間內(nèi)執(zhí)行塊的動作。

+ (nullable SKAction *)actionNamed:(NSString *)name;//從一個動作文件中創(chuàng)建一個給定名稱的動作。
+ (nullable SKAction *)actionNamed:(NSString *)name duration:(NSTimeInterval)duration;//從一個動作文件中創(chuàng)建一個給定名稱的動作。時間。
+ (nullable SKAction *)actionNamed:(NSString *)name fromURL:(NSURL *)url;//從一個URL中創(chuàng)建一個給定名稱的動作。
+ (nullable SKAction *)actionNamed:(NSString *)name fromURL:(NSURL *)url duration:(NSTimeInterval)duration;//從一個URL中創(chuàng)建一個給定名稱的動作。時間。
NodeWithPhysicsBody
+ (SKAction *)changeChargeTo:(float)v duration:(NSTimeInterval)duration;//將節(jié)點的物理體的電荷更改為新值。
+ (SKAction *)changeChargeBy:(float)v duration:(NSTimeInterval)duration;//通過相對值改變節(jié)點物理體的電荷。

+ (SKAction *)changeMassTo:(float)v duration:(NSTimeInterval)duration ;//將節(jié)點的物理體的質(zhì)量更改為新值。
+ (SKAction *)changeMassBy:(float)v duration:(NSTimeInterval)duration;//通過相對值改變節(jié)點物理體的質(zhì)量。

+ (SKAction *)applyForce:(CGVector)force duration:(NSTimeInterval)duration;//將力施加到節(jié)點物理體的重心。
+ (SKAction *)applyForce:(CGVector)force atPoint:(CGPoint)point duration:(NSTimeInterval)duration;//將力施加到節(jié)點物理體上的特定點。

+ (SKAction *)applyTorque:(CGFloat)torque duration:(NSTimeInterval)duration;//將扭矩應用到節(jié)點的物理體。

+ (SKAction *)applyImpulse:(CGVector)impulse duration:(NSTimeInterval)duration;//將脈沖應用于物理體的重心。
+ (SKAction *)applyImpulse:(CGVector)impulse atPoint:(CGPoint)point duration:(NSTimeInterval)duration;//將脈沖應用于節(jié)點物理體的特定點。

+ (SKAction *)applyAngularImpulse:(CGFloat)impulse duration:(NSTimeInterval)duration;//將角脈沖應用于節(jié)點的物理體。
PlaybackControl 播放操作
+ (SKAction *)play;//運行
+ (SKAction *)pause;//暫停
+ (SKAction *)stop;//停止

+ (SKAction *)changePlaybackRateTo:(float)v duration:(NSTimeInterval)duration;//播放速率更改為新值的操作。
+ (SKAction *)changePlaybackRateBy:(float)v duration:(NSTimeInterval)duration;//播放速率更改為新值的操作。
MixerControl
+ (SKAction *)changeVolumeTo:(float)v duration:(NSTimeInterval)duration;//將音頻節(jié)點的音量更改為新值的操作。
+ (SKAction *)changeVolumeBy:(float)v duration:(NSTimeInterval)duration;//將音頻節(jié)點的音量更改為新值的操作。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容