スプライト

スプライトとは、ゲームのキャラクター1つ1つの画像で、重ねあわせて表示したり動かしたりできるセル画のようなものです。

基本

SKSpriteNode *sprite1;
sprite1 = [SKSpriteNode spriteNodeWithImageNamed:@"filename1"];  // 1
sprite1.position = CGPointMake(100, 100); // 2
[self addChild:sprite1]; // 3
  1. filename1.png等のファイルを読み込んでスプライトを作成
  2. 表示する座標を指定。座標はスプライトの中心が基準点。(0, 0)が画面左下になる。
  3. シーンに追加

例文:スプライトの作成

画像ファイルからスプライトを作成

あらかじめ画像ファイルをプロジェクトに追加しておく。ここでの画像ファイル名の例はfilename1.pngファイル。

SKSpriteNode* sprite1 = [SKSpriteNode spriteNodeWithImageNamed:@"filename1"];

色を指定して四角いスプライトを作成

SKSpriteNode* sprite1 = [SKSpriteNode spriteNodeWithColor: [SKColor redColor] size:CGSizeMake(24, 24)]; 

ここでは24x24の赤く四角いスプライトを作成している。

例文:スプライトの座標、サイズ等

位置(座標)

sprite1.position = CGPointMake(0, 0);

拡大縮小、反転

sprite1.xscale = 0.5; // X方向にサイズを50%
sprite1.yscale = -1.0; // Y方向に反転

回転

sprite1.zRotation = 45.0  / 180.0 * M_PI ; // 反時計回りに45度回転

例文:シーンに追加、削除、名前の設定

シーンに追加

[self addChild:sprite1];

シーンから消去

[sprite1 removeFromParent];

スプライトに名前をつける

[sprite1 setName:@"name1"];

名前をつけたスプライトを取得する

SKSpriteNode *sprite1 = (SKSpriteNode*)[self childNodeWithName:@"name1"];

例文:その他

Z座標(奥行き)

sprite1.zPosition = 0.0; // 数字が大きいほど手前に表示

表示・非表示

sprite1.hidden = YES; // YESで非表示、NOで表示

透明度

sprite1.alpha = 0.0; // 0.0で透明、0.5で半透明、1.0で不透明

アンカーポイントの変更(デフォルトは0.5, 0.5)

sprite1.anchorPoint = CGPointMake(0.5, 0);     // 中央下がアンカーポイント

デフォルトでは画像の中央が基準点となり、座標を指定すると、画像の中央がその座標になるようにスプライトが配置される。

スプライト同士が交差しているかどうかを調べる

BOOL isIntersect = [sprite1 intersectsNode:sprite2];