はじめまして、ハルキと言います。
今、C++でBox2Dを勉強しているのですが、DebugDrawの使い方がわかりません。
一応自分でググってやってみました。
b2DebugDraw* debugDraw;
debugDraw->SetFlags(e_polygonShape);
world.SetDebugDraw(&debugDraw);
すると、
error C2664: 'b2World::SetDebugDraw'
: 1 番目の引数を 'b2DebugDraw **__w64 ' から 'b2DebugDraw *' に変換できません。
と言われます。
どうすればいいでしょうか?
Box2D_v2.0.1を使っています。
それと、「->」は知人に指摘されて「.」から置き換えてやってみただけなので、
「->」の意味を分かっていません。
検索の仕方もわからないので、
どういう場面で使うものなのか、教えてください。
お暇であれば、よろしくお願いします。m(_ _)m
Box2DのDebugDrawの使い方を教えてください
Re:Box2DのDebugDrawの使い方を教えてください
> DebugDrawの使い方がわかりません
まず b2DebugDrawクラスを継承したクラスを作ります。
このクラスのメンバ関数として基底である b2DebugDrawクラスの純粋仮想関数の
DrawPolygonや DrawCircleなどの関数を環境(DirectXとか OpenGLとかで)に合わせて適切に実装します。
で、このクラスをインスタンス化し、b2DebugDraw::SetFlags関数を使ってデバッグ表示したい
種類を指定します(e_shapeBitとか e_jointBitとか)。
最後にそのインスタンスへのポインタを b2World::SetDebugDraw関数に設定してください。
これで、たしか b2World::Step関数を呼び出した時に描画が行われるようになるはずdす。
Box2Dのサンプル Examples/TestBed/Framework/Test.cppにそのあたりの記述がありますので、
参考にしてみて下さい。
>「->」の意味を分かっていません
それは ->演算子というもので、->の左側がクラスのポインタである場合に
クラスのメンバにアクセスする時に使用します。
アロー演算子でアクセス
http://wmcw.jp/cstruct_arr.html
第十三回-03 ドット演算子とアロー演算子
http://brain.cc.kogakuin.ac.jp/~kanamar ... 13-03.html
構造体ポインタ
http://wisdom.sakura.ne.jp/programming/c/c36.html
しかし、さすがに ->演算子がわからないというその状態で Box2Dを使うのはちょっと無謀です。
もう少し C++の足固めをした方がいいのでは?
まず b2DebugDrawクラスを継承したクラスを作ります。
このクラスのメンバ関数として基底である b2DebugDrawクラスの純粋仮想関数の
DrawPolygonや DrawCircleなどの関数を環境(DirectXとか OpenGLとかで)に合わせて適切に実装します。
で、このクラスをインスタンス化し、b2DebugDraw::SetFlags関数を使ってデバッグ表示したい
種類を指定します(e_shapeBitとか e_jointBitとか)。
最後にそのインスタンスへのポインタを b2World::SetDebugDraw関数に設定してください。
これで、たしか b2World::Step関数を呼び出した時に描画が行われるようになるはずdす。
Box2Dのサンプル Examples/TestBed/Framework/Test.cppにそのあたりの記述がありますので、
参考にしてみて下さい。
>「->」の意味を分かっていません
それは ->演算子というもので、->の左側がクラスのポインタである場合に
クラスのメンバにアクセスする時に使用します。
アロー演算子でアクセス
http://wmcw.jp/cstruct_arr.html
第十三回-03 ドット演算子とアロー演算子
http://brain.cc.kogakuin.ac.jp/~kanamar ... 13-03.html
構造体ポインタ
http://wisdom.sakura.ne.jp/programming/c/c36.html
しかし、さすがに ->演算子がわからないというその状態で Box2Dを使うのはちょっと無謀です。
もう少し C++の足固めをした方がいいのでは?
Re:Box2DのDebugDrawの使い方を教えてください
早速の回答ありがとうございます!
b2DebugDrawの説明、とてもわかりやすかったです。
C→C# とやっていたので、
だいたい行けるかなぁと思いあがっていました;;
おっしゃる通り、C++の基礎からやり直したいと思います。
ありがとうございました!!
b2DebugDrawの説明、とてもわかりやすかったです。
C→C# とやっていたので、
だいたい行けるかなぁと思いあがっていました;;
おっしゃる通り、C++の基礎からやり直したいと思います。
ありがとうございました!!
Re:Box2DのDebugDrawの使い方を教えてください
安定性はわかりませんが C#版もあります。
C#の方が慣れているのであれば、こちらの方も試してみるといいかもしれません。
box2dx - Project Hosting on Google Code
http://code.google.com/p/box2dx/
C#の方が慣れているのであれば、こちらの方も試してみるといいかもしれません。
box2dx - Project Hosting on Google Code
http://code.google.com/p/box2dx/