この記事では、 '飛行する敵'(何らかの鳥にしましょう)を作成する方法を説明します。 ほとんどの場合、同様に物理演算も必要です。 そのため、まず最初にどのタイプのbodyを使用するのかを決めなけばなりません (body タイプの説明については - ここをクリック)
今回の例では、'飛行する'敵を作成するので、モンスターのbodyに重力は必要ありません。これは KINEMATIC bodyタイプが最も適しているということです。 モンスターは、x軸に沿って絶えず移動を続けます (右 - 左と方向を変えます)
final float maxMovementX = 200; final Sprite m = new Sprite(x, y, width, height, textureRegion); m.setCullingEnabled(true); final Body b = PhysicsFactory.createBoxBody(physicsWorld, m, BodyType.KinematicBody, wallFixtureDef); b.setLinearVelocity(-1 * 5, 0); physicsWorld.registerPhysicsConnector(new PhysicsConnector(m, b, true, false) { @Override public void onUpdate(float pSecondsElapsed) { super.onUpdate(pSecondsElapsed); if (m.getX() <= x - maxMovementX) { b.setLinearVelocity(b.getLinearVelocity().x * -1, 0); } if (m.getX() >= x + maxMovementX) { b.setLinearVelocity(b.getLinearVelocity().x * -1, 0); } } });
この簡単な方法で、モンスターは絶えず移動し、特定のポイント (この例では、モンスターのスタート地点 Xの+- maxMovementX の地点, in the left direction)に着くと方向を変えます。 linear velocityに-1をかけることでモンスターの動く方法を変えます。 これは本当に基本的な実装だけなので、たいていは CONTACT LISTENER 内でbody同士の接触を確認するためにユーザーデータを設定する必要があります。- 例えば、プレイヤーの死亡やモンスターの破壊を制御するために。