私はBox2DでCocos2Dを使用し、単一のフィクスチャを持つボディから対応するスプライトを持つ複数のフィクスチャを持つボディに移動します。ボディごとに複数のフィクスチャを使用する場合のスプライトの配置
body->GetTranform().p.x + shape->m_centroid.x
body->GetTranform().p.y + shape->m_centroid.y
body->GetTransform().q.GetAngle()
ボディが回転するまで、スプライトを適切に配置することができます。その時点で、すべてのスプライトが兄弟に関連して回転し、すべてのグループが(0、0)ボディアンカーポイントであると考えられるものの周りを回転しながら、すべてがうまくいきません。
私の推測では、Cocos2D/Box2Dには、必要な変換を実行するための単純な組み込みメソッドがありますが、これは文書化されていません。私のスプライトを正しく配置する最良の方法は何ですか?
ラジアンまたは度を使用していますか? GetAngleはラジアンを返します。 – iforce2d
はい、コードサンプルのメートル - >ピクセルとラジアン - >度の変換を省略しました。私が言及したように、私はこれをシングルフィクスチャーボディで行っています。問題は、b2PolygonShapeのm_centroidが変換されないことです。私が見つけたいと思っていたものは、shape-> getTransform()のようなものでしたが、それは存在しません。しかし、私は最終的に私が必要なものを見つけました。以下の私の解決策を見てください。 – user371320