Hello, Sprite Kit!
本章ではSprite Kitを用いた開発の流れを体験します。所謂hello, worldです。
Xcode 5には、SpriteKit Game
テンプレートが用意されているため、プロジェクト作成時にそれを選択すれば、簡単にSprite Kitを利用することができます。
なお、プロジェクトがシンプルになるよう、ここではデバイスはiPhone
のみにします。
SpriteKit Game テンプレート
デバイス選択
デフォルトの状態で動作するようになっていますので、そのまま実行してみましょう。
ブルーグレーの背景にHello, World!という文字が表示されます。
また、画面をタップするとその場所にスペースシップが表示されて、回転し続けます。
テンプレートに実装されている機能はこれだけですが、文字・画像の表示、アニメーションなどSprite Kitの基本的な使い方を知ることができます。
Hello, World!と表示
スペースシップ
プロジェクトの中身を見ていきましょう。
構成は以下のとおりです。
次にソースのポイントとなる部分を見ていきます。
SJAppDelegate.m
まずは、AppDelegateです。
ご覧のとおり、特に何もしていません。Storyboardsを利用した普通のプロジェクトと同じです。
SJViewController.m
次にViewControllerを見てみましょう。
// Configure the view
の部分では、self.viewをSKViewにキャストして、FPSと描画ノード数を表示する設定をしています。
SKViewはUIViewのサブクラスで、Sprite Kitのコンテンツ表示用のViewです。
以下のとおり、Storyboard上で、View ControllerのViewのCustom ClassがSKView
に設定されています。
Identity inspectorのCustom Class項目
// Create and configure the scene.
では、SKSceneのサブクラスであるSJMyScene
のインスタンスを作成しています。
SKSceneはSprite Kitのゲームの1画面に対応します。
// Present the scene.
では先ほど作成したシーンのインスタンスをSKViewに設定し、画面に表示しています。
SJMyScene.m
最後にシーンです。
イニシャライザでは、
backgroundColor
をブルーグレーに設定
Hello, World!
と表示するSKLabelNodeを作成して、子ノードとして追加
しています。
SKLabelNodeは、その名の通りテキストを表示するためのクラスです。
なお、Sprite Kit上で表示されるものは、全てSKNodeのサブクラスとして用意されています。
この他に、動画を表示するSKVideoNodeなど、様々な種類があります。
touchesBegan:withEvent:
では、タップされた座標を設定したSKSpriteNodeを作成して追加しています。
SKSpriteNodeは、画像等を表示するクラスです。ここでは画像としてテンプレート内にあるSpaceship.png
が使用されています。
SKActionクラスを使ってアニメーション設定されています。360度つまり1回転を、1秒かけて行ない、それを永遠に繰り返す指定がされています。
ここまで、SpriteKit Game
テンプレートに実装されている、主なソースを見てきました。
シンプルなコードで、文字や画像の表示から、アニメーションまで簡単にできることを感じていただけたでしょうか。
Sprite Kitでは、このようにゲームの画面であるSKSceneを作り、そこに様々なNodeを追加し、それをSKView上に表示することでゲームを作り上げていきます。
comments powered by