SKTexture

プロパティ

フィルタリングモード(テクスチャの本来のサイズ以外で描画される場合に使用される)

filteringMode

SKTextureFilteringMode
初期値 SKTextureFilteringLinear

SKTextureFilteringLinear 線形補間。クォリティーが上がるが、遅くなる。
SKTextureFilteringNearest 最近傍補間。速いが粗い。

ミップマップを使用するかどうか

usesMipmaps

BOOL
初期値 NO

ミップマップを使用すると若干(3分の1くらい)メモリを多く消費するが、サイズの小さなテクスチャで、レンダリングの質とパフォーマンスを向上させることができる。2のべき乗のサイズのテクスチャでのみ使用可能。16x16、256x256など。

クラスメソッド

複数のテクスチャ画像からテクスチャを事前に読み込み、終了後にブロック内の命令を実行

+ (void)preloadTextures:(NSArray *)textures withCompletionHandler:(void (^)(void))completionHandler

textures SKTextureオブジェクトを格納した配列
completionHandler テクスチャの読み込みが完了した後に呼ばれるブロック文 

Sprite Kitはテクスチャを読み込むバックグラウンドタスクを作成し、ゲームに制御を戻す。
読み込みが完了したらcompletionHandlerが実行される。

Quartz 2D 画像からテクスチャを作成

+ (SKTexture *)textureWithCGImage:(CGImageRef)image

image Quartz 2D 画像(CGImageRef)オブジェクト

ピクセルデータからテクスチャを作成

+ (SKTexture *)textureWithData:(NSData *)pixelData size:(CGSize)size

pixelData ビットマップデータを保持するNSDataオブジェクト。ピクセルは32bpp,8bpc(unsigned integer)RGBAピクセルデータであること。カラーコンポーネントはアルファ値を乗算してあること。
size 新しいテクスチャのサイズ(ポイント)

カスタムフォーマットのピクセルデータからテクスチャを作成

+ (SKTexture *)textureWithData:(NSData *)pixelData size:(CGSize)size rowLength:(unsigned int)rowLength alignment:(unsigned int)alignment

pixelData ビットマップデータを保持するNSDataオブジェクト。ピクセルは32bpp,8bpc(unsigned integer)RGBAピクセルデータであること。カラーコンポーネントはアルファ値を乗算してあること。
size 新しいテクスチャのサイズ(ポイント)
rowLength ビットマップの1行あたりのメモリ(バイト数)
alignment ピクセルデータの個々のピクセル間のオフセット。小さくパックされたデータは0とする。 

UIImageからテクスチャを作成

+ (SKTexture *)textureWithImage:(UIImage *)image

image UIImageオブジェクト 

ファイル名を指定してテクスチャを作成

+ (SKTexture *)textureWithImageNamed:(NSString *)name

name 画像ファイル名

新しいテクスチャオブジェクトは画像ファイル名で初期化され、すぐにゲームに制御を戻します。
Sprite Kitは必要に応じてロードと準備を行います。
テクスチャデータを読み込む時、Sprite Kitは与えられたファイル名で画像ファイルをアプリケーションのバンドルから探します。
一致する画像ファイルが見つからない場合、Sprite Kitはいずれかのテクスチャアトラスから探します。
バンドル上のどこにも画像が見つからない場合、プレースホルダーとなるテクスチャ画像を作成します。

既存のテクスチャから矩形を指定して新しいテクスチャを作成

+ (SKTexture *)textureWithRect:(CGRect)rect inTexture:(SKTexture *)texture

rect テスクチャを使用する場所を示す矩形(単位座標空間)
texture Sprite Kitのテクスチャオブジェクト

返されるテクスチャオブジェクトはオリジナルのテクスチャオブジェクトと同じテクスチャデータを共有します。このことはテクスチャデータはメモリ上に1つだけ保持されることを意味します。このメソッドによって作成されたテクスチャでこのメソッドを実行したら、ソースとしてオリジナルのテクスチャが使われます。そのため、矩形はソースのテクスチャ座標系として考慮されます。言い換えると、自分で座標を再計算しないとサブテクスチャのサブテクスチャは作れません。

インスタンスメソッド

テクスチャ画像からテクスチャを事前に読み込み、終了後にブロック内の命令を実行

- (void)preloadWithCompletionHandler:(void (^)(void))completionHandler

completionHandler テクスチャ読み込み完了後に実行されるブロック文

Sprite Kitは関連したファイルからテクスチャデータを読み込むバックグラウンドタスクを作成し、ゲームに制御を戻します。
テクスチャデータが読み込まれた後completionHandlerのブロック文が実行されます。
一般的に、テクスチャを使う前にメモリ上に特定のテクスチャが読み込まれたことを保証したい時にこのメソッドを使用します。同時に複数のテクスチャを読み込む必要がある時、代わりにpreloadTextures:withCompletionHandler:メソッドを使ってください。

テクスチャサイズを返す

- (CGSize)size

画像ファイルを使ってテクスチャを作成し、まだ画像ファイルが読み込まれていない時、このメソッドはテクスチャデータを強制的に読み込みます。

CIFilterを適用したテクスチャを返す

- (SKTexture *)textureByApplyingCIFilter:(CIFilter *)filter

filter Core Image フィルター(1つのinputImageパラメータを持ち、outputImageパラメータを出力する)

テクスチャのレンダリングに使用される部分の矩形データを返す

- (CGRect)textureRect

矩形の初期値は(0,0)-(1,1)です。この値を直接設定することはできません。
設定の必要がある場合は、textureWithRect:inTexture:メソッドで新しいテクスチャを作成する必要があります。