iOS7で追加されたSpriteKitフレームワークの使い方 ~その2~

お疲れさまです!土井です!!

ではでは~その2~行きまっせー!
この前、最後に言ったやつ追加しました?
スプライトに重力を加味するあれですね。
「まだやー」って言う人はコチラ

( [Xcode]iOS7で追加されたSpriteKitフレームワークの使い方 ~その1~ )

それでは今回は簡単に
「パーティクル」を追加する方法を述べますよー。

パーティクルってなんぞ?
と、思った方は多いのではなかろうか…
パーティクル・システム(英: particle system)はコンピュータグラフィック技術のひとつで、型のレンダリング技術では再現が難しい、ある種の曖昧さを持った事物をシミュレートするために使われる。(by.wikipedia)

つまり花火や星空や雨など表現するのに適したシステムです。

Spritekitはそれを簡単に追加できます!!
いやほんと超簡単ですよ!
まずXcodeに用意されています。

===========================================================

こんな感じで…

スクリーンショット 2014-06-02 18.02.15

そう!
新規ファイルを追加するかの如く、
導入出来ます。
というより右クリック>NewFile>Resourceですから
如くではなく、普通に新規ファイルですね。

とりあえず入れちゃいましょ。

テンプレートも用意されていて
至れり尽くせりですね。
テンプレートは以下の8つです。

===========================================================
・Bokeh
・Fire
・Firefiles
・Magic
・Rain
・Smoke
・Snow
・Spark
===========================================================

今回はFireを導入します。
すると、sksという見慣れない拡張子の
ファイルが生成されます。
中身はこんな…

スクリーンショット 2014-06-02 18.16.43

右のパラメータを弄ればいろいろ変化します!
結構綺麗で楽しいので是非試して下さい。

では次にコードの方に導入してみましょう。
タッチした際、その座標に出現するようにしましょう。
Fireはパーティクルノード
(パーティクルとパーティクルシステムを作成・制御するもの)
が出っぱなしなので

少し燃えたら勝手に鎮火するようにしましょう!

ParticlesのMaximumに0以上を与えてやると
勝手に消えます!
1とかではしょぼいので50~200くらいで。

//Fireパーティクルを発生するメソッド
- (void)fireAppear:(CGPoint)firePos {

    //パスを当ててファイルを読み込みます。
    //同時にパーティクルのオブジェクトを生成。
    SKEmitterNode* emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:
                              [[NSBundle mainBundle] pathForResource:@"MyParticle"
                                                              ofType:@"sks"]];

    //ターゲットをself.sceneに設定。
    emitter.targetNode = self.scene;

    //ポジションは引数(タッチ座標を受け取ります。)
    emitter.position = firePos;

    //そして魔法の呪文で表示。
    [self addChild:emitter];
}
//touchesBeganメソッドに以下の行を追加。
        [self fireAppear:location];

これだけで発生します。
試して下さい!

写真 1 写真 3

時には燃え上がるHelloWorldもいいですね!

===========================================================

これだけでも
とてもゲームの案が浮かび上がりませんか?
次はSpritekitとは少し違いますが、
ゲームっぽい実装をしていきます!

ではでは。

コメントを残す

メールアドレスが公開されることはありません。