Cocos2d-xのシーングラフ

ゲーム開発におけるシーングラフ(SceneGraph)とは

シーングラフはベクトルベースのグラフィックスでよく使われているデータ構造です。
近年のゲームエンジンはシーングラフを実装しているものがほとんどです。
シーングラフは、グラフ構造(graph)または木構造(tree)です。
グラフは1つの親に複数の子が持て、1つの子に対して複数の親が持てる構造であるのに対して、木は1つの親に複数の子が持てますが、1つの子に対して複数の親は持てません。
Cocos2d-xでは、木構造を採用しています。

Cocos2d-xのシーングラフのためのコンポーネント

  • Director — ゲーム全体のシーンを管理
  • Scene — 1つの画面
  • Layer — シーン上の特定の部分(v3以降は、将来は廃止の予定)
  • Node — シーン上に現れるオブジェクト
  • Sprite — 2D画像オブジェクト

Scenegraph

Director

  • シングルトンオブジェクト

  • 画面サイズなど共通のデータの管理
  • シーン遷移の補助
  • 使用中のシーンの管理とシーンの変更

Scene

  • Nodeのサブクラス
  • autoreleaseオブジェクト
  • 1つの画面を構成
  • Sceneクラスを継承して、それぞれのシーンクラスを作成
  • オブジェクトの生成にFacotryパターンを使用

Layer

  • Nodeのサブクラス
  • タッチイベントを実装

Node

  • シーングラフに追加する基本要素
  • 機能
    • 他のノードを子として持つことが可能
    • フレームごとの処理に対応
    • アクションを実行可能
  • 基本的なデータ
    • position — (位置、デフォルト: x=0, y=0)
    • scale — (拡大縮小、デフォルト: x=1, y=1)
    • rotation — (回転角、単位は度、時計回り) (デフォルト: 0)
    • anchor point — (基準点、デフォルト: x=0, y=0)
    • contentSize — (コンテンツの大きさ、デフォルト: width=0, height=0)
    • visible — (表示するかどうか、デフォルト: true)
Digiprove sealCopyright secured by Digiprove © 2014

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください