Sprite Kitの概要

  • 31
    Like
  • 0
    Comment
More than 1 year has passed since last update.

iOS 7で登場したSprite Kitとは何者なのかについて調べたメモ書きです。

全体的

  • ゲーム向け。
  • 伝統的なレンダリングループの実装を行っている。表示した内容(フレーム)を毎回処理してレンダリングする。それを繰り返すことでアニメーションになる。
  • ハードウェアの機能を使って最適化している。
  • 物理法則のシミュレーションにも対応。
  • サウンドプレイバック有り。
  • ユーザーインターフェイスのアニメーションには向かない。ユーザーインターフェイスのアニメーションはCore Animationを使用するべき。

SKView

  • Sprite Kitを使って内容を描画するビュー。
  • ビュークラスだから、他のビュークラスと同様に既存のビュー階層に入れることができる。
  • presentScene:メソッドでSKSceneのインスタンスを渡す。

SKScene

  • フレーム単位の内容の制御など。
  • フレーム単位で内容を描き、それが連続してアニメーションになるという制御(処理)は自動的に行ってくれる。
  • アプリは、サブクラスを作って、ゲームの各画面(タイトル画面とか)を作る。
  • SKNodeのサブクラス。

SKNode

  • ビューみたいに階層を持つ。
  • SKNode自身は何もしないけど、サブクラスには色々な機能を持ったものがある。Core Imageのフィルタを適用してくれるクラスとか。

テクスチャ

  • テクスチャの管理(ロードなど)は自動で行ってくれるらしい。
  • テクスチャアトラスというテクスチャデータのグループ化などがある。

SKAction

  • シーンがフレームを処理したときに実行されるアクション。
  • ノードのプロパティを変更するアクションとかを書いて、ノードのアニメーションなどもできる。
  • 複数フレームにまたがることもできる。
  • ノードの階層変更、サウンドの再生、カスタムコードの実行なども可能。(つまり、何でもあり?)
  • 組み合わせたり、グループ化したりして、複雑なこともできる。
  • 自動リピートもできる。

SKPhysicsBody

  • 物理法則の適用。
  • 速度変化など。
  • ノードにセットする。

SKPhysicalWorld

  • シーン全体の物理法則(世界の定義?)

SKPhysicsJoint

  • バネとかピントか、滑るとか、別のオブジェクトと連携する処理などが可能。SKPhysicsBody間など。
  • SKPhysicsWorldが管理する。

まとめ

Cocos2dとかとよく比較されているけど、名前のとおり、スプライト処理を行ってくれるという仕組み。
OS標準ということで、OSの持っている他の機能とうまく連携する感じ。
動作環境が今時点だと、新しいものに限定されてしまうけど、使ってみたいなぁ。