SpriteKit當(dāng)中的SKAction類

SpriteKit SKAction類
繼承自 NSObject
符合 NSCoding,NSCopying,NSObject(NSObject)
框架 /System/Library/Frameworks/SpriteKit.framework
聲明于 SKAction.h
參考指南 Sprite Kit Progamming Guide

概覽

一個(gè)SKAction實(shí)例是一個(gè)動(dòng)作,通過SKScene場景中的節(jié)點(diǎn)來執(zhí)行。動(dòng)作可以綁定到節(jié)點(diǎn)上,用以改變節(jié)點(diǎn)的結(jié)構(gòu)和內(nèi)容,有時(shí)也可以改變場景。當(dāng)場景處理其子節(jié)點(diǎn)的時(shí)候,與這些節(jié)點(diǎn)相關(guān)聯(lián)的動(dòng)作將被計(jì)算。

要?jiǎng)?chuàng)建一個(gè)動(dòng)作,調(diào)用你感興趣的動(dòng)作的類方法。然后,配置這個(gè)動(dòng)作的屬性。最后,要執(zhí)行這個(gè)動(dòng)作,調(diào)用節(jié)點(diǎn)實(shí)例的runAction方法,并且將創(chuàng)建好的動(dòng)作作為參數(shù)傳入。

大部分動(dòng)作允許你改變一個(gè)節(jié)點(diǎn)的屬性,例如位置,旋轉(zhuǎn)或者縮放。有一些具體的動(dòng)作僅適用于SKSpriteNode實(shí)例,把精靈的顏色或者紋理屬性做成動(dòng)畫。大多數(shù)動(dòng)作是基于Sprite Kit的動(dòng)畫,意味著他們將在超過一幀的動(dòng)畫渲染場景中改變這些關(guān)聯(lián)節(jié)點(diǎn)的屬性。當(dāng)一個(gè)動(dòng)作被制成動(dòng)畫時(shí),它的duration屬性確定了完成動(dòng)作所需要的時(shí)間秒數(shù),它的timingMode屬性定義了執(zhí)行動(dòng)畫的速率。動(dòng)作的speed屬性允許你通過提高或者降低它的速度來調(diào)整動(dòng)畫的時(shí)間。

許多動(dòng)作可以反向,你可以創(chuàng)建一個(gè)新的動(dòng)作實(shí)例,該動(dòng)作的效果與前一個(gè)相反。例如,如果一個(gè)動(dòng)作實(shí)例使節(jié)點(diǎn)向右移動(dòng),它的相反動(dòng)作就是向左移動(dòng)一個(gè)相等的量。要?jiǎng)?chuàng)建一個(gè)反向動(dòng)作實(shí)例,需要調(diào)用動(dòng)作實(shí)例的reverseAction方法。

一些動(dòng)作以子動(dòng)作的方式包含其他動(dòng)作:

一個(gè)序列動(dòng)作中有多個(gè)子動(dòng)作,序列中的每一個(gè)動(dòng)作在前一個(gè)動(dòng)作結(jié)束之前開始。

一個(gè)組動(dòng)作中有多個(gè)子動(dòng)作,動(dòng)作組中的所有動(dòng)作同時(shí)開始執(zhí)行。

一個(gè)重復(fù)動(dòng)作中只有一個(gè)子動(dòng)作,當(dāng)重復(fù)動(dòng)作中的子動(dòng)作完成時(shí),重復(fù)動(dòng)作將重新開始執(zhí)行。

上面三種動(dòng)作可以嵌套使用,這種使動(dòng)作結(jié)合起來的能力可以幫你為節(jié)點(diǎn)添加非常復(fù)雜的動(dòng)作。

子類注意事項(xiàng)

永遠(yuǎn)不要寫SKAction的子類。反而言之,你可以創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作可以在任意對象或者執(zhí)行代碼塊中調(diào)用方法。

類方法

創(chuàng)建移動(dòng)節(jié)點(diǎn)的動(dòng)作。

創(chuàng)建一個(gè)移動(dòng)節(jié)點(diǎn)當(dāng)前位置的動(dòng)作。

+ (SKAction *)moveByX:(CGFloat)deltaX y:(CGFlota)deltaY duration:(NSTimeInterval)sec
參數(shù) 解釋
deltaX 節(jié)點(diǎn)在X軸上的移動(dòng)量
deltaY 節(jié)點(diǎn)在Y軸上的移動(dòng)量
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,執(zhí)行該動(dòng)作的節(jié)點(diǎn)的位置屬性,將會(huì)實(shí)時(shí)的從當(dāng)前位置變成新的位置。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)移動(dòng)節(jié)點(diǎn)到目標(biāo)位置的動(dòng)作。

+ (SKAction *)moveTo:(CGPoint)location duration:(NSTimeInterval)sec
參數(shù) 解釋
location 節(jié)點(diǎn)的目標(biāo)位置
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,執(zhí)行該動(dòng)作的節(jié)點(diǎn)的位置屬性,將會(huì)實(shí)時(shí)的從當(dāng)前位置變成新的位置。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作有著與它相同的完成時(shí)間,但是卻無法移動(dòng)節(jié)點(diǎn)。

創(chuàng)建一個(gè)移動(dòng)節(jié)點(diǎn)水平位置的動(dòng)作。

+ (SKAction *)moveToX:(CGFloat)x duration:(NSTimeInterval)sec
參數(shù) 解釋
x 節(jié)點(diǎn)的X軸目標(biāo)位置
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,執(zhí)行該動(dòng)作的節(jié)點(diǎn)的位置屬性,將會(huì)實(shí)時(shí)的從當(dāng)前位置變成新的位置。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作有著與它相同的完成時(shí)間,但是卻無法移動(dòng)節(jié)點(diǎn)。

創(chuàng)建一個(gè)移動(dòng)節(jié)點(diǎn)垂直位置的動(dòng)作。

+ (SKAction *)moveToY:(CGFloat)y duration:(NSTimeInterval)sec
參數(shù) 解釋
y 節(jié)點(diǎn)的Y軸目標(biāo)位置
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,執(zhí)行該動(dòng)作的節(jié)點(diǎn)的位置屬性,將會(huì)實(shí)時(shí)的從當(dāng)前位置變成新的位置。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作有著與它相同的完成時(shí)間,但是卻無法移動(dòng)節(jié)點(diǎn)。

創(chuàng)建一個(gè)使節(jié)點(diǎn)沿著相對路徑移動(dòng)的動(dòng)作。

+ (SKAction *)followPath:(CGPathRef)path duration:(NSTimeInterval)sec
參數(shù) 解釋
path 一個(gè)CGPathRef路徑
sec 完成動(dòng)作所需要的時(shí)間

論述

調(diào)用這個(gè)方法,相當(dāng)于調(diào)用followPath:asOffset:orientToPath:duration:方法,并且ofset和orient兩個(gè)參數(shù)為YES。
這個(gè)動(dòng)作是可逆,它的反向動(dòng)作有著與它相同的完成時(shí)間,并且沿著與它相反的路徑移動(dòng)。

創(chuàng)建一個(gè)使節(jié)點(diǎn)沿著一個(gè)路徑移動(dòng)的動(dòng)作。

+ (SKAction *)followPath:(CGPathRef)path asOffset:(BOOL)offset orientToPath:(BOOL)orient duration:(NSTimeInterval)sec
參數(shù) 解釋
path 一個(gè)CGPathRef路徑
offset YES,路徑中的點(diǎn)為節(jié)點(diǎn)起始位置的相對位置,NO,路徑中的點(diǎn)為絕對坐標(biāo)值
orient YES,節(jié)點(diǎn)的Z軸旋轉(zhuǎn)屬性順著路徑變化,NO,節(jié)點(diǎn)的Z軸旋轉(zhuǎn)屬性不變
sec 完成動(dòng)作所需要的時(shí)間

論述

調(diào)用這個(gè)方法,節(jié)點(diǎn)的位置和Z軸旋轉(zhuǎn)屬性會(huì)順著路徑變化。
這個(gè)動(dòng)作是可逆,它的反向動(dòng)作有著與它相同的完成時(shí)間,并且沿著與它相反的路徑移動(dòng)。

創(chuàng)建旋轉(zhuǎn)節(jié)點(diǎn)的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作通過一個(gè)相對的角度旋轉(zhuǎn)節(jié)點(diǎn)。

+ (SKAction *)rotateByAngle:(CGFloat)radians duration:(NSTimeInterval)sec
參數(shù) 解釋
radians 節(jié)點(diǎn)的旋轉(zhuǎn)量,以弧度為單位
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的Z軸旋轉(zhuǎn)屬性會(huì)實(shí)時(shí)的變成新的角度。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)使節(jié)點(diǎn)旋轉(zhuǎn)到一個(gè)絕對的角度。

+ (SKAction *)rotateToAngle:(CGFloat)radians duration:(NSTimeInterval)sec
參數(shù) 解釋
radians 節(jié)點(diǎn)需要旋轉(zhuǎn)到的角度,以弧度為單位
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的Z軸旋轉(zhuǎn)屬性會(huì)實(shí)時(shí)的變成新的角度。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建改變節(jié)點(diǎn)動(dòng)畫速度的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作通過一個(gè)相對的值來改變節(jié)點(diǎn)執(zhí)行動(dòng)作的速度。

+ (SKAction *)speedBy:(CGFloat)speed duration:(NSTimeInterval)sec
參數(shù) 解釋
speed 節(jié)點(diǎn)的速度增量
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的速度屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作通過一個(gè)絕對的值來改變節(jié)點(diǎn)執(zhí)行動(dòng)作的速度。

+ (SKAction *)speedTo:(CGFloat)speed duration:(NSTimeInterval)sec
參數(shù) 解釋
speed 節(jié)點(diǎn)的目標(biāo)速度
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的速度屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建縮放節(jié)點(diǎn)的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)通過一個(gè)相對的值來縮放節(jié)點(diǎn)的X軸和Y軸。

+ (SKAction *)scaleBy:(CGFloat)scale duration:(NSTimeInterval)sec
參數(shù) 解釋
scale 節(jié)點(diǎn)的縮放值增量
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的X軸縮放屬性和Y軸縮放屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)縮放節(jié)點(diǎn)的X軸和Y軸。

+ (SKAction *)scaleTo:(CGFloat)scale duration:(NSTimeInterval)sec
參數(shù) 解釋
scale 節(jié)點(diǎn)的目標(biāo)縮放值
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的X軸縮放屬性和Y軸縮放屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)通過兩個(gè)相對的值來分別縮放節(jié)點(diǎn)的X軸和Y軸。

+ (SKAction *)scaleXBy:(CGFloat)xScale y:(CGFloat)yScale duration:(NSTimeInterval)sec
參數(shù) 解釋
xScale 節(jié)點(diǎn)的X軸縮放值增量
yScale 節(jié)點(diǎn)的Y軸縮放值增量
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的X軸縮放屬性和Y軸縮放屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)通過兩個(gè)絕對的值來分別縮放節(jié)點(diǎn)的X軸和Y軸。

+ (SKAction *)scaleXTo:(CGFloat)xScale y:(CGFloat)yScale duration:(NSTimeInterval)sec
參數(shù) 解釋
xScale 節(jié)點(diǎn)的目標(biāo)X軸縮放值
yScale 節(jié)點(diǎn)的目標(biāo)Y軸縮放值
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的X軸縮放屬性和Y軸縮放屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)通過一個(gè)絕對的值來縮放節(jié)點(diǎn)的X軸。

+ (SKAction *)scaleXTo:(CGFloat)xScale duration:(NSTimeInterval)sec
參數(shù) 解釋
xScale 節(jié)點(diǎn)的X軸縮放值
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的X軸縮放屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)通過一個(gè)絕對的值來縮放節(jié)點(diǎn)的Y軸。

+ (SKAction *)scaleYTo:(CGFloat)yScale duration:(NSTimeInterval)sec
參數(shù) 解釋
yScale 節(jié)點(diǎn)的目標(biāo)Y軸縮放值
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的Y軸縮放屬性會(huì)實(shí)時(shí)的變成新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建改變節(jié)點(diǎn)透明度的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)使節(jié)點(diǎn)的alpha值屬性漸變?yōu)?.0。

+ (SKAction *)fadeInWithDuration:(NSTimeInterval)sec
參數(shù) 解釋
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的alpha值屬性會(huì)漸變?yōu)?.0。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)使節(jié)點(diǎn)的alpha值屬性漸變?yōu)?.0。

+ (SKAction *)fadeOutWithDuration:(NSTimeInterval)sec
參數(shù) 解釋
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的alpha值屬性會(huì)漸變?yōu)?.0。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)根據(jù)一個(gè)相對的值來漸變節(jié)點(diǎn)的alpha值。

+ (SKAction *)fadeAlphaBy:(CGFloat)factor duration:(NSTimeInterval)sec
參數(shù) 解釋
factor 節(jié)點(diǎn)的alpha值的增量。
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的alpha值屬性會(huì)漸變?yōu)樾碌闹怠?br> 這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作會(huì)根據(jù)一個(gè)絕對的值來漸變節(jié)點(diǎn)的alpha值。

+ (SKAction *)fadeAlphaTo:(CGFloat)factor duration:(NSTimeInterval)sec
參數(shù) 解釋
factor 節(jié)點(diǎn)的目標(biāo)alpha值。
sec 完成動(dòng)作所需要的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,節(jié)點(diǎn)的alpha值屬性會(huì)漸變?yōu)樾碌闹怠?br> 這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建改變節(jié)點(diǎn)內(nèi)容的動(dòng)作。

創(chuàng)建一個(gè)調(diào)整精靈大小的動(dòng)作。

+ (SKAction *)resizeByWidth:(CGFloat)width height:(CGFloat)height duration:(NSTimeInterval)sec
參數(shù) 解釋
width 精靈寬的增量。
height 精靈高的增量。
sec 完成動(dòng)作所需要的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的size屬性會(huì)實(shí)時(shí)的變成一個(gè)新的值。
這個(gè)動(dòng)作是可逆的,按照下面的代碼執(zhí)行將會(huì)生成一個(gè)逆向的動(dòng)作。

創(chuàng)建一個(gè)調(diào)整精靈高度的動(dòng)作。

+ (SKAction *)resizeToHeight:(CGFloat)height duration:(NSTimeInterval)sec
參數(shù) 解釋
height 精靈的目標(biāo)高度。
sec 完成動(dòng)作所需要的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的size屬性會(huì)實(shí)時(shí)的變成一個(gè)新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建一個(gè)調(diào)整節(jié)精靈度的動(dòng)作。

+ (SKAction *)resizeToWidth:(CGFloat)width duration:(NSTimeInterval)sec
參數(shù) 解釋
width 精靈的目標(biāo)寬度。
sec 完成動(dòng)作所需要的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的size屬性會(huì)實(shí)時(shí)的變成一個(gè)新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建一個(gè)調(diào)整精靈大小的動(dòng)作。

+ (SKAction *)resizeToWidth:(CGFloat)width height:(CGFloat)height duration:(NSTimeInterval)sec
參數(shù) 解釋
width 精靈的目標(biāo)寬度。
height 精靈的目標(biāo)高度。
sec 完成動(dòng)作所需要的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的size屬性會(huì)實(shí)時(shí)的變成一個(gè)新的值。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作會(huì)花費(fèi)相同的時(shí)間,但是什么事情也沒有做。

創(chuàng)建一個(gè)改變精靈紋理的動(dòng)作。

+ (SKAction *)setTexture:(SKTexture *)texture
參數(shù) 解釋
texture 節(jié)點(diǎn)的新紋理。

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的紋理會(huì)立即變成新的紋理。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作什么事情也沒有做。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作以動(dòng)畫的形式改變精靈的紋理。

+ (SKAction *)animateWithTextures:(NSArray *)textures timePerFrame:(NSTimeInterval)sec
參數(shù) 解釋
textures 動(dòng)畫中需要的紋理數(shù)組
sec 每個(gè)紋理顯示的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的紋理會(huì)隨著紋理數(shù)組而改變。當(dāng)精靈的紋理變成數(shù)組中的下一個(gè)紋理的時(shí)候,動(dòng)作在下一次改變紋理之前先暫定一個(gè)特定的時(shí)間。直到數(shù)組中的所有紋理變換完畢,動(dòng)作才完成。完成動(dòng)作總共需要的時(shí)間等于紋理個(gè)數(shù)乘以每個(gè)紋理顯示的時(shí)間。
這個(gè)動(dòng)作是可逆的,它的反向動(dòng)作只需要把紋理數(shù)組從后往前遍歷。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作以動(dòng)畫的形式改變精靈的紋理。在這過程中可能會(huì)調(diào)整精靈的大小。

+ (SKAction *)animateWithTextures:(NSArray *)textures timePerFrame:(NSTimeInterval)sec resize:(BOOL)resize restore:(BOOL)restore
參數(shù) 解釋
textures 動(dòng)畫中需要的紋理數(shù)組
sec 每個(gè)紋理顯示的時(shí)間
resize YES,精靈的大小會(huì)自動(dòng)調(diào)整為各個(gè)紋理的大小,NO,不調(diào)整
restore YES,動(dòng)作完成后,精靈的紋理恢復(fù)為動(dòng)作完成前的紋理 如果resize為YES,精靈會(huì)自動(dòng)調(diào)整為原有紋理的大?。?NO,動(dòng)作完成后,精靈的紋理保持為數(shù)組的最后一個(gè)紋理

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的紋理會(huì)隨著紋理數(shù)組而改變。當(dāng)精靈的紋理變成數(shù)組中的下一個(gè)紋理的時(shí)候,動(dòng)作在下一次改變紋理之前先暫定一個(gè)特定的時(shí)間。直到數(shù)組中的所有紋理變換完畢,動(dòng)作才完成。完成動(dòng)作總共需要的時(shí)間等于紋理個(gè)數(shù)乘以每個(gè)紋理顯示的時(shí)間。
這個(gè)動(dòng)作是可逆的,它的反向動(dòng)作只需要把紋理數(shù)組從后往前遍歷。
注意:如果restore參數(shù)為YES,并且動(dòng)作從節(jié)點(diǎn)中刪除時(shí),動(dòng)作還沒有完成,節(jié)點(diǎn)的紋理仍然是可以恢復(fù)的。這與默認(rèn)的刪除動(dòng)作的行為不同。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作以動(dòng)畫的形式改變精靈的顏色和混合因子。

+ (SKAction *)colorizeWithColor:(SKColor *)color colorBlendFactor:(CGFloat)colorBlendFactor duration:(NSTimeInterval)sec
參數(shù) 解釋
color 精靈的目標(biāo) 顏色。
colorBlendFactor 混合因子
duration 完成動(dòng)作所需要的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的顏色屬性和混合因子屬性會(huì)實(shí)時(shí)的改變。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作什么事情也沒有做。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作以動(dòng)畫的形式改變精靈的混合因子。

+ (SKAction *)colorizeWithColor:(CGFloat)colorBlendFactor duration:(NSTimeInterval)sec
參數(shù) 解釋
colorBlendFactor 混合因子
duration 完成動(dòng)作所需要的時(shí)間

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的混合因子屬性會(huì)實(shí)時(shí)的改變。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作什么事情也沒有做。

創(chuàng)建一個(gè)播放聲音的動(dòng)作。

創(chuàng)建一個(gè)播放聲音的動(dòng)作。

+ (SKAction *)playSoundFileNamed:(NSString *)soundFile waitForCompletion:(BOOL)wait
參數(shù) 解釋
soundFile 放在項(xiàng)目中的聲音文件的名字
wait YES,動(dòng)作是時(shí)間與聲音的播放時(shí)間相同,NO,動(dòng)作會(huì)被認(rèn)為是立即完成的

論述

這個(gè)動(dòng)作只能被用于SKSpriteNode實(shí)例,當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,精靈的混合因子屬性會(huì)實(shí)時(shí)的改變。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與原始動(dòng)作是一樣的。

創(chuàng)建一個(gè)從當(dāng)前父節(jié)點(diǎn)刪除子節(jié)點(diǎn)的動(dòng)作。

創(chuàng)建一個(gè)從當(dāng)前父節(jié)點(diǎn)刪除子節(jié)點(diǎn)的動(dòng)作。

+ (SKAction *)removeFromParent

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行的時(shí)候,本節(jié)點(diǎn)會(huì)立即從父節(jié)點(diǎn)中刪除。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與原始動(dòng)作是一樣的。

創(chuàng)建一個(gè)在子節(jié)點(diǎn)上執(zhí)行的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作執(zhí)行其子節(jié)點(diǎn)上的一個(gè)動(dòng)作。

+ (SKAction *)runAction:(SKAction *)action onChildWithName:(NSString *)name
參數(shù) 解釋
action 子節(jié)點(diǎn)上需要執(zhí)行的動(dòng)作
name 子節(jié)點(diǎn)的名字。

論述

盡管其子節(jié)點(diǎn)上的動(dòng)作需要一個(gè)完成時(shí)間,本動(dòng)作也是瞬間完成的。當(dāng)本動(dòng)作執(zhí)行時(shí),它會(huì)找到一個(gè)適當(dāng)?shù)淖庸?jié)點(diǎn),并且通過調(diào)用其runAction方法,執(zhí)行其子節(jié)點(diǎn)上的動(dòng)作。
這個(gè)動(dòng)作是可逆的,它通過action參數(shù)通知子節(jié)點(diǎn)去執(zhí)行一個(gè)特定的相反的動(dòng)作。

創(chuàng)建一個(gè)組合或者重復(fù)動(dòng)作。

創(chuàng)建一個(gè)組合動(dòng)作,組合中的所有動(dòng)作是同時(shí)執(zhí)行的。

+ (SKAction *)group:(NSArray *)actions
參數(shù) 解釋
actions 動(dòng)作數(shù)組

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),組合中的每一個(gè)動(dòng)作都同時(shí)開始執(zhí)行。這個(gè)動(dòng)作所需時(shí)間等于組合中所需時(shí)間最長的那個(gè)。如果組合中某個(gè)動(dòng)作提前完成,它會(huì)閑下來等待組合中的其余動(dòng)作完成。這一點(diǎn)在做一組動(dòng)作的重復(fù)動(dòng)作時(shí)顯得很重要。
這個(gè)動(dòng)作是可逆的,它的可逆動(dòng)作是創(chuàng)建一個(gè)數(shù)組,數(shù)組中的每一個(gè)動(dòng)作都是逆向動(dòng)作。

創(chuàng)建一個(gè)序列動(dòng)作,序列中的所有動(dòng)作是依次執(zhí)行的。

+ (SKAction *)sequence:(NSArray *)actions
參數(shù) 解釋
actions 動(dòng)作數(shù)組

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),序列中的第一個(gè)動(dòng)作開始執(zhí)行,隨后序列中其余的動(dòng)作以類似的方式執(zhí)行,直到序列中的所有動(dòng)作都執(zhí)行完。這個(gè)動(dòng)作所需時(shí)間是序列中所有動(dòng)作所需時(shí)間之和。
這個(gè)動(dòng)作是可逆的,它的可逆動(dòng)作是創(chuàng)建一個(gè)順序相反的動(dòng)作序列,序列中每一個(gè)動(dòng)作都是自身的逆向動(dòng)作。例如,一個(gè)動(dòng)作序列為{1,2,3},它的逆向動(dòng)作序列為{3R,2R,1R}。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作以特定的次數(shù)重復(fù)另一個(gè)動(dòng)作。

+ (SKAction *)repeatAction:(SKAction *)action count:(NSUInteger)count
參數(shù) 解釋
action 需要重復(fù)的動(dòng)作
count 需要重復(fù)的次數(shù)

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),它所關(guān)聯(lián)的動(dòng)作將會(huì)被執(zhí)行到完成,然后重復(fù),直到達(dá)到需要重復(fù)的次數(shù)。
這個(gè)動(dòng)作是可逆的,它的可逆動(dòng)作是創(chuàng)建一個(gè)其關(guān)聯(lián)動(dòng)作的逆向動(dòng)作,然后重復(fù)執(zhí)行相同的次數(shù)。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作將永遠(yuǎn)重復(fù)另一個(gè)動(dòng)作。

+ (SKAction *)repeatAction:(SKAction *)action count:(NSUInteger)count
參數(shù) 解釋
action 需要重復(fù)的動(dòng)作

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),它所關(guān)聯(lián)的動(dòng)作將會(huì)被執(zhí)行到完成,然后重復(fù)。
這個(gè)動(dòng)作是可逆的,它的可逆動(dòng)作是創(chuàng)建一個(gè)其關(guān)聯(lián)動(dòng)作的逆向動(dòng)作,然后永遠(yuǎn)的重復(fù)執(zhí)行。

創(chuàng)建一個(gè)可以引入到序列動(dòng)作中的等待動(dòng)作。

創(chuàng)建一個(gè)等待特定時(shí)間的動(dòng)作,這個(gè)動(dòng)作可以用在動(dòng)作序列中。

+ (SKAction *)watiForDuration:(NSTimeInterval)sec
參數(shù) 解釋
sec 等待時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),這個(gè)動(dòng)作將會(huì)等待一個(gè)特定的時(shí)間,然后結(jié)束。它通常被用于動(dòng)作序列中兩個(gè)動(dòng)作的時(shí)間間隔。當(dāng)你需要等待一段時(shí)間觸發(fā)代碼的時(shí)候,可以把它用在runAction:completion方法中。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與它本身相同。

創(chuàng)建一個(gè)等待隨即時(shí)間的動(dòng)作。

+ (SKAction *)waitForDuration:(NSTimeInterval)sec withRange:(NSTimeInterval)durationRange
參數(shù) 解釋
sec 平均等待時(shí)間
durationRange 等待時(shí)間的范圍

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),這個(gè)動(dòng)作將會(huì)等待一個(gè)特定的時(shí)間,然后結(jié)束。它通常被用于動(dòng)作序列中兩個(gè)動(dòng)作的時(shí)間間隔。當(dāng)你需要等待一段時(shí)間觸發(fā)代碼的時(shí)候,可以把它用在runAction:completion方法中。
該動(dòng)作執(zhí)行的每一個(gè)等待時(shí)間都是該動(dòng)作計(jì)算的一個(gè)隨即的等待時(shí)間。如果觀察超過一半的durationRange參數(shù)的值,這個(gè)等待時(shí)間可能會(huì)是任何的趨勢。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與它本身相同。

創(chuàng)建一個(gè)自定義的動(dòng)作。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作將執(zhí)行一個(gè)代碼塊。

+ (SKAction *)runBlock:(dispatch_block_t)block
參數(shù) 解釋
block 需要執(zhí)行的代碼塊

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),代碼塊將被調(diào)用,這個(gè)動(dòng)作是瞬間完成的。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與它本身相同。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作將執(zhí)行一個(gè)特定執(zhí)行任務(wù)隊(duì)里下的代碼塊。

+ (SKAction *)runBlock:(dispatch_block_t)block queue:(dispatch_queue_t)queue
參數(shù) 解釋
block 需要執(zhí)行的代碼塊
queue 執(zhí)行任務(wù)隊(duì)列

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),代碼塊將被調(diào)用,這個(gè)動(dòng)作是瞬間完成的。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與它本身相同。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作將會(huì)在等待時(shí)間過后執(zhí)行代碼塊。

+ (SKAction *)customActionWithDuration:(NSTimeInterval)sec actionBlock:(void(^)(SKNode *node, CGFloat elapsedTime))block
參數(shù) 解釋
sec 等待時(shí)間
block 代碼塊有以下參數(shù), node:執(zhí)行動(dòng)作的節(jié)點(diǎn), elapsedTime:已經(jīng)過去的時(shí)間

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),代碼塊將被重復(fù)調(diào)用,直到動(dòng)作的等待時(shí)間結(jié)束。所等待的時(shí)間將被保存到elapsedTime參數(shù)里面。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與它本身相同。

創(chuàng)建一個(gè)動(dòng)作,這個(gè)動(dòng)作將會(huì)調(diào)用一個(gè)方法。

+ (SKAction *)performSelector:(SEL)selector onTarget:(id)target
參數(shù) 解釋
seletor 需要調(diào)用的方法的選擇器
target 調(diào)用該方法的對象

論述

當(dāng)這個(gè)動(dòng)作執(zhí)行時(shí),目標(biāo)對象的方法將被調(diào)用,這個(gè)動(dòng)作是瞬間完成的。
這個(gè)動(dòng)作是不可逆的,它的反向動(dòng)作與它本身相同。

實(shí)例方法

創(chuàng)建一個(gè)逆向的動(dòng)作。

通過一個(gè)動(dòng)作創(chuàng)建該動(dòng)作的反向動(dòng)作。

+ (SKAction *)reversedAction:(SKAction *)action
參數(shù) 解釋
action 平均等待時(shí)間

論述

這個(gè)方法通常會(huì)返回一個(gè)動(dòng)作實(shí)例。然而,不是所有動(dòng)作都是可逆的。有時(shí)候會(huì)返回一個(gè)什么也不做的動(dòng)作,或者會(huì)返回一個(gè)與原始動(dòng)作相同的動(dòng)作。判斷動(dòng)作是否可逆,請參照詳細(xì)文檔。

屬性

屬性名 結(jié)果 論述
speed 速度屬性決定了動(dòng)作運(yùn)行地快慢 速度屬性調(diào)整一個(gè)動(dòng)作動(dòng)畫播放的快慢。例如,一個(gè)2.0的速度因子意味著動(dòng)畫以兩倍的速度播放。
timingMode 執(zhí)行動(dòng)作的時(shí)序模式 詳細(xì)值參照常量部分,它的默認(rèn)值為線性SKActionTimingLinear。
duration 執(zhí)行動(dòng)作所需要的時(shí)間 這是執(zhí)行動(dòng)作的預(yù)期時(shí)間,執(zhí)行動(dòng)作的實(shí)際時(shí)間還需要計(jì)算動(dòng)作的速度屬性和執(zhí)行該動(dòng)作的節(jié)點(diǎn)的速度屬性。

常量

執(zhí)行動(dòng)作的時(shí)序模式。

typedef NS_ENUM(NSInteger, SKActionTimingMode){
SKActionTimingLinear, // 動(dòng)畫在其持續(xù)時(shí)間內(nèi)平均分布
SKActionTimingEaseIn,// 動(dòng)畫開始的時(shí)候較慢,然后漸漸加快
SKActionTimingEaseOut,// 動(dòng)畫開始的時(shí)候較快,然后漸漸變慢
SKActionTimingEaseInEaseOut,// 動(dòng)畫開始的時(shí)候慢,然后漸漸加快至中間,然后再漸漸變慢至完成
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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