これは、ピクセルパーフェクトな衝突を作成するというあなたの質問に対する答えではありませんが、画像に応じてフィクスチャを作成することは悪い考えだと言いたいです。
- Box2Dは凹型フィクスチャをサポートしていません。
- Box2D(C ++の元のバージョン、これがJBox2Dでどのように機能するかはわかりません)には、ポリゴンごとに8つの頂点に制限があります。
これらの2つの理由により、ピクセルごとに1つの正方形のフィクスチャを作成することを考えるかもしれませんが、それは処理時間で非常に高価になります。
ほぼ完成したゲームでは、レベルエディタを使用してフィクスチャを定義しています。
これが私のレベル(xml)の1つの抜粋です:
<body id="STONE" depth="13" angle="0.000000" type="static" x="7.939437" y="0.750494" tags="" >
<image id="stone_img" img="IMG_STONE" depth="0" x="-0.362081" y="0.526663" w="1.400000" h="1.600000" angle="0.000000" colorize="ffffffff"/>
<fixture id="" density="1.000000" friction="0.300000" restitution="0.300000" sensor="false" shape="rect" x="-0.188671" y="0.806253" w="1.000000" h="2.200000" angle="0.545597" tags="" />
<fixture id="" density="1.000000" friction="0.300000" restitution="0.300000" sensor="false" shape="rect" x="0.412080" y="-0.097607" w="1.000000" h="2.200000" angle="0.000000" tags="" />
</body>
これがBox2Dを操作する最良の方法だと思います。
うまくいけば、これはあなたにインスピレーションを与えます:D