万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

CocosBuilder手順 for cocos2d-x

CocosBuilderが使いやすいっぽい。
これは、ゲーム部分というより、タイトル画面とかステージ選択画面とかで使うのが吉だと思う。

注意!Version 2.1のにcocos2d-xが対応したようだ。
RC版「Release Candidate(製品候補版)」だが、「Version 2.1 RC 3」を使うように(2012/10/14現在)

cocos2d-iPhoneのために作られたっぽいが、
しかも、cocos2d-xでも使えるらしい。

URL:http://qiita.com/items/40fa88d149fdecaa9f86
「Example」を公式サイトからダウンロードしてProjectへ追加している、
しかし、cocos2d-xには専用のクラスがすでに同梱されているのでしなくてよさそう。

cocos2d-xのフォーラム
URL:http://tillawy.wordpress.com/

1. プロジェクト作成
CocosBuilderを起動して、File -> New -> New Project… にて、実際のcocos2d-xプロジェクトの
※〜.xcodeproj->の中に「CocosBuilder Files (start here)」フォルダを作って、その中に作成した「Project」フォルダで作成するのが好ましい。

「CocosBuilder Files (start here)」フォルダに「Resrources」を入れてそれは、画像の管理にする。

2.Publish先設定
「File -> Project Settings…」にてどこにファイルを保存するかが選べる。

参考のサイトと同様、「CocosBuildet Test」の略で、CCBTestにした。

3.ZIPで保存する設定はしない

zip形式で保存するにはチェックする。後ほど説明するPublishするときにzipになる。
チェックしないと「"〜.ccbi」になる。

が!!!cocos2d-xは対応してないのでチェックしない

Please note that cocos2d-x can’t read archive zip files (AFAIK), so you need to uncheck (public to zip file) in cocosbuilder project settings

4.レイヤーファイルの作成
「File -> New -> New File…」からメニューを出す。

「Root object type」を「CCLayer」にして作成。
実際に作られるのはmmファイルとかではなくて専用の.ccbファイルが出来るようだ。



左下のProject内に一覧が出てるがそこにレイヤーが追加される。

※次回からこれを開く


右上の設定は、このように名前を入れる。
CCBTestにした。これはあとからPublishされる名前になるはず。

すると、
左上のStructureにレイヤーが追加される。

5.Publishする
Publish(option+command+S)を選ぶ!

2.0のバージョンはPublish Archive File(option+shift+command+S)もあった。


「CCBTest.ccbi」ファイルができます!

これで、CocosBuilderの作業は終わり

6.素材を移す


ドラッグ&ドロップしてResourcesフォルダからXCodeへ「CCBTest.ccbi」をコピー。

このメニューはデフォルトにした。

7.最後に組み込み

今回、AppDelegate.cppを改変する。
もともとは、HelloWorldシーンを実行させている。

・AppDelegate.cppの上がわのinclude設定。

#include "CCBReader.h"
#include "CCNodeLoaderLibrary.h"

・AppDelegate.cpp

    // create a scene. it's an autorelease object
    CCScene *pScene = HelloWorld::scene();
    // run
    //pDirector->runWithScene(pScene);

↓これを今回のやつに置き換える。

    cocos2d::extension::CCNodeLoaderLibrary * ccNodeLoaderLibrary = cocos2d::extension::CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
    cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
    CCNode * node = ccbReader->readNodeGraphFromFile("CCBTest.ccbi");
    CCScene * scene = CCScene::create();
    if(node != NULL) {
        scene->addChild(node);
    }
    ccbReader->release();
    // run
    pDirector->runWithScene(scene);


↑のコードのcocos2d::extension::が長くてうっとおしいので

USING_NS_CC_EXT;

を一番上に追加して、

    CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
    CCBReader * ccbReader = new CCBReader(ccNodeLoaderLibrary);
    CCNode * node = ccbReader->readNodeGraphFromFile("CCBTest.ccbi");
    CCScene * scene = CCScene::create();
    if(node != NULL) {
        scene->addChild(node);
    }
    ccbReader->release();
    pDirector->runWithScene(scene);

にしてもいい

↓のように、ファイル名間違ってなくてもなぜか出来ない場合はCocosBuilderのVersionを確認しよう

ット思ったが、できない!!!