2012年5月16日水曜日

cocos2d: GLESDebugDrawクラスをBox2D v2.1.1用に修正

Cocos2dに最新のBox2Dを入れてみるの記事で、Cocos2d 1.1 beta2にBox2D v2.1.1を入れましたが、デバッグ描画用のクラスGLESDebugDraw(GLES-Render)が未対応のままでした。

今回、GLESDebugDrawクラスをBox2D v2.1.1用に修正したのでシェアします。

ダウンロード GLES-Render.tar.gz

使い方は、前のGLESDebugDrawクラスと同じです。
GLES-Render.hとGLES-Render.mmを新しいものに入れ替えて下さい。

そして、cocos2dのBox2D用テンプレートコードの中に、以下の様なGLESDebugDrawクラスをインスタンス化する箇所があります。
この中でb2DebugDrawと記述してあるところをb2Drawに変更して下さい。
#ifdef BOX2D_DEBUG_DRAW
    if (debugDraw) {
        delete debugDraw;
        debugDraw = NULL;
    }
    debugDraw = new GLESDebugDraw(PTM_RATIO);
    world->SetDebugDraw(debugDraw);
    
    uint32 flags = 0;
    flags |= b2Draw::e_shapeBit;                   // ここらへんを修正
    //        flags |= b2Draw::e_jointBit;
    //        flags |= b2Draw::e_aabbBit;
    //        flags |= b2Draw::e_pairBit;
    //        flags |= b2Draw::e_centerOfMassBit;
    debugDraw->SetFlags(flags);
#endif    

変更は以上です。
今のところ僕の環境では問題なく動作していますが、不具合等ありましたらご連絡下さい。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...