Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

cocos2d入門編 〜”scene graph” or “node hierarchy”〜

0 Comments
Posted by Kuro on 2013/01/05

cocos2dではCCNodeオブジェクトの階層構造(scene graph”または”node hierarchy”)によってどこに何を表示するのかを決めています。
例えばCCScene→CCLayer→CCSpriteといったような階層です。
この表示階層に含まれるクラスはすべてCCNodeクラスを継承しています。

[参考資料]
http://www.cocos2d-iphone.org/api-ref/latest-stable/interface_c_c_node.html

CCSceneとCCLayerはnodeというメソッドで初期化していますが、そこで行われているのはただのalloc,init,autoreleaseです。

CCSceneはその上に乗るオブジェクトを適切に表示するための位置情報を持つだけで、それ自体は表示されません。

CCLayerもCCScene同様に表示はされませんが、CCSceneの上にいくつでも重ねることができ、CCSpriteなどの表示要素をまとめたり、表示順を決めたりするのに使われます。

Layerを動かすとそのグループに含まれるnodeオブジェクト(CCNodeを継承したオブジェクト)は一緒に動いてくれるわけです。

また、CCLayerはタッチイベントや加速度を感知することができます。

上の説明だと分かりにくいかもしれませんが、Learn cocos2d著者による以下の説明を読むとCCScene、CCLayerの役割がつかめるかと思います。

「階層構造やグループ化をするのに、私はCCLayerクラスを使うよりもCCNodeクラスを使うほうを好む。CCLayerにはタッチや加速度、キーボード、マウス操作を感知するためのコードが含まれており、大抵の場合、不要なコストが掛かるからだ。それらの機能を取り除けば、それはただのCCNodeと変わりない。CCSceneにも同じことが言える。CCSceneは表示階層のルートオブジェクトとして強制されるために存在する抽象的なコンセプトで、実質的にはCCNodeと変わりない。」
(Learn Cocos2d 2: Game Development for Ios, p.54)

Learn Cocos2d 2: Game Development for Ios
Steffen Itterheim Andreas Low
Apress
売り上げランキング: 22,020

スポンサードリンク


You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

Popular Posts