私は、iOS用のBox2dエディタで、cocos2dを使って作業しています。cocos2d、b2Worldは自分のデータをどのように作成するのですか?
私は自分のワールドクラスにb2World
をラップしました。自分の描画機能を実装したい。より高いレベルのクラス(Wall、Ropeなど)を描画するので、b2Draw
サブクラスを作成し、それを世界のDebugDrawとして設定するだけでは不十分ですが、b2World
DrawDebugData
も変更する必要があります。
ワールドクラスをCCLayer
から継承し、draw
メソッドをオーバーライドすることをお勧めしますか?よりよいアプローチは何ですか?
私はあなた自身が答えを言ったと思います - 「私はb2World DrawDebugDataを変更する必要があります。または、より前向きな思考の解決策のために、壁を作ることができます。ロープは、作成されたBox2Dボディーへの参照を与えることで自分自身を描きます。 – iforce2d
最初のアプローチは、DrawDebugDataを変更します。つまり、b2World.cppを直接変更しますか?私はそれは良いアプローチだとは思わない。また、私はb2Worldが拡張される用意はないと思う。 2番目のアプローチ:モデルオブジェクトが描画されるかもしれませんが、誰かがその描画メソッドを呼び出さなければならないので、まだアプローチ1になっています。 – Ave
わかりません。あなたが望むのは、デバッグ描画を制御することだけです。これを行うために必要なのは、あなた自身のコードを - (void)drawで書くことだけです。 –