Box2d ゲームで、正しく動作するようにゲーム ループ内の CCSprite の位置を更新する必要があることがわかりました。Box2D ドキュメントを調べて、b2Body 座標を取得するための API を確認しましたが、何も表示されず、不明なようです。各 CCSprite を手動で移動する必要がありますか、または画面上のすべての CCSprite をそれらに関連付けられた b2Bodys に移動する簡単な方法はありますか?
これを行う方法について誰か考えがありますか?
ありがとう!
Edit1: このコードは、私の世界のすべてのスプライトをそれらに対応する b2Body に更新するだけですか? そして、これは x 軸と y 軸と正しい回転で動作しますか?
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) {
if (b->GetUserData() != NULL) {
CCSprite *sprite = (CCSprite *)b->GetUserData();
b2Vec2 b2Position = b2Vec2(sprite.position.x/PTM_RATIO,
sprite.position.y/PTM_RATIO);
float32 b2Angle = -1 * CC_DEGREES_TO_RADIANS(sprite.rotation);
b->SetTransform(b2Position, b2Angle);
}
}