サイトのトップへ戻る

AndEngineドキュメント 日本語訳

Bodyを作成する:

Bodyの作成は、このエンジンを使用するとすばやく簡単に行えます。 いくつかの基本的なbody の形を使用することができます。 (もっと複雑な形を作成できますが、どうするかはあなた次第です)
  • BoxBody - 長方形、正方形
  • LineBody - 名前の通り、線です
  • CircleBody  - 名前の通り、円です


1. 新規にbody を作成する例:
private void createBody()
{
    final FixtureDef objectFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f);
    PhysicsFactory.createBoxBody(physicsWorld, sprite, BodyType.StaticBody, objectFixtureDef);
}
見て分かるように、新しくbodyを作成する際にこのbody の形を設定する必要があります - 今回はbox body を使用しています(createBoxBody メソッドを使って)。 we have to define our Physics World, our shape, in this kind some kind of Sprite, body type (bodyタイプ間の違いについて知らない場合は、このページを確認してください)。そして、引数を3つ設定してテクスチャ定義を作成します:
  • Density
  • Elasticity
  • Friction 

必要に応じて(bodyの使用目的)、これらの値は変更する必要があります。



2. 移動する Bodyを作成する:
移動するbody(タイプはDynamic か Kinematic である必要があります)を作成したい場合は、 Physics Connectorも登録しなければなりません。 なぜそのようなことをするのでしょうか?Physics Connectorを登録することで、shapeやsprite がbodyに合わせて動くようになります。 登録しなかった場合、bodyの動きを一切検知できず(既定ではbodyは非表示のため)、shapeやsprite ずっと同じ位置にあるようにしか見えません。 そういった訳で、physics connectorを登録するには以下のようにします:
physicsWorld.registerPhysicsConnector(new PhysicsConnector(sprite, body, true, true));

パラメータ引数が四つあり、一つ目は使用する sprite、二つ目は使用する body、三つ目は位置の更新許可、最後は回転の更新許可です (そのため、使用するbodyの回転を簡単に無効にすることができます)



3. ユーザーデータを設定する:
ユーザーデータを設定することで、使用するbodyに 'グローバル識別子' を簡単に付与し、body同士の接触か簡単に認識できます - Body同士の接触についてはこの記事を確認してください。  ユーザーデータを設定するためにしなければならないことは、例えば以下の通りです:
yourBody.setUserData("Player");

setUserData() はパラメータとして オブジェクト を使用するので、文字列を使用しなければならないわけではなく、 場合によってはSprite を引数に使用することが有効な時もあるかもしれません(例えば、インスタンスを確認する場合)