Cocos2d-x 3.2
物体のシェイプとかジョイントを表示してくれる
- このGistにある
B2DebugDrawLayer.h
とB2DebugDrawLayer.cpp
をプロジェクトへ配置 - Cocos2d-xのディレクトリの
tests/cpp-tests/Classes/Box2DTestBed
の中にあるGLES-Render.h
とGLES-Render.cpp
をプロジェクトへ配置 - 下記のように
b2World
作成後にLayer追加(PTM_RATIOはBox2Dで使用する定数なので定義してあるはず)
b2Vec2 gravity;
gravity.Set(0.0f, -0.8f);
world = new b2World(gravity);
// DebugDraw
addChild(B2DebugDrawLayer::create(world, PTM_RATIO), 9999);
B2DebugDrawLayer.cpp
の下記箇所をコメントアウトしたりすることでデバッグで表示されるものを制御できる
uint32 flags = 0;
flags += b2Draw::e_shapeBit;
flags += b2Draw::e_jointBit;
flags += b2Draw::e_aabbBit;
flags += b2Draw::e_pairBit;
flags += b2Draw::e_centerOfMassBit;
mB2DebugDraw->SetFlags(flags);
http://discuss.cocos2d-x.org/t/box2d-debug-drawing-for-cocos2d-x-3-0/11912
ここから落とせるものが少し古いのかオーバーライドする関数が違ったので修正した