いちおくまんえん

最近はcocos2d-xでゲームアプリ「いちおくまんえん」の制作がメインです。 あとアニメも少々・・

cocos2d-xとCocosBuilderの連携方法①

cocos2dでは特に難しいことはしなくてもCocosBuilderで用意した変数などに普通にアクセス出来るらしいのですが、cocos2d-xではそんな楽をさせてくれません。


CocosBuilder側で用意した変数やSelectorを利用したい場合は、cocos2d-x側のどの変数やSelectorに割り当てるかを全て記述する必要があります。


単純にCocosBuilderで作成したものを配置して、Autoplayのアニメーションをそのまま再生したい。といった用途であれば簡単に実装できます。

// 必要なものを読み込む
#include "cocos2d.h"
#include "CCBReader.h"
#include "CCNodeLoaderLibrary.h"

// 使用する名前空間を設定
USING_NS_CC;
USING_NS_CC_EXT;

// パブリッシュされたccbiファイルを読み込む
CCNodeLoaderLibrary* pNodeLoaderLibrary = CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
CCBReader* pReader = new CCBReader(pNodeLoaderLibrary);
CCNode * pNode = pReader->readNodeGraphFromFile("hogehoge.ccbi");

// 後は載せたい場所にaddChild

// 開放
pReader->release();


しかし多くの場合、ボタンのタップなどを検知してシーンを切り替えたりアニメーションを切り替えたりするような使い方だと思います。


そのような場合にはCocosBuilderの要素にカスタムクラスを設定し、cocos2d-xでカスタムクラスの実装を行います。


CocosBuilder側のカスタムクラスの設定は要素を選択した時に右上の方に出てくるところで設定出来ます。
f:id:ichiokumanyen:20130819031727p:plain


一番上にあるRootNodeにだけ指定しておけば問題無いと思います。


cocos2d-x側で要素を取得して何かしたい場合はDoc root varを選択して変数名を記入しておきましょう。(Owner var選択時の挙動については調べてないので不明です。。)
要素の取得はタグからでも可能なので好みで使い分けて下さい。


( ゚д゚)ハッ!こんな時間

変数やSelectorの繋ぎ込み方法については次の記事で説明したいと思います。
数日中には書き上げます(´・ω・`)