2012年9月29日土曜日

CocosBuilder2.1Beta2で指定したCCSpriteのインスタンスを取得する方法

CocosBuilderで、シーンを作成したときに貼付けたスプライトなどに対して、コード上で処理を行いたい場合は、そのスプライトのインタンスを取得する必要があります。その場合の作業手順です。

以下のように、CocosBuilderでCCLayerとして設定したルートノードのクラス名を"hoge"とします。


以下のように、hogeクラスのメンバ変数とするために"Doc root var"を選択します。そして、取得したいCCSpriteを選択しインスタンス名を入力します。


ccbを保存し、ccbiファイルを"Publish"でXCodeのプロジェクト内に保存します。

XCodeで、CocosBuilderで設定したクラス名とサフィックスが同じファイル名になるようにして、"hoge.h"と"hoge.m"を追加作成します。
そして、以下のように"hoge.h"でCCLayerからの継承クラスに変更します。

@interface hoge  : CCLayer

"hoge.h"で"CCSprite *hogeSprite;"を宣言します。

以下のようにして、ccbiファイル読み込むと、自動的にhogeはインスタンス化され、
(この場合では、nodeという名前で参照されます。CCNodeではなくCCLayerでキャストする必要があると思います。) hogeSpriteは、このときにメンバ変数としてインスタンス化されています。

CCNode *node = [CCBReader nodeGraphFromFile:file];

また、"hoge.m"で、デリゲートメソッドとして"- (void) didLoadFromCCB"を実装すると、
ccbiファイル読み込み終了時に呼び出されますので、"hogeSprite"に対しての処理を行うことができます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。