クラスを継承するInputAdapter
クラスを作成し、そのインスタンスを作成して登録し、タッチ入力をリッスンします。
Gdx.input.setInputProcessor(inputAdapter);
タッチ イベントを処理するには 3 つのメソッドがありtouch_down
、touch_dragged
オーバーライドtouch_up
する必要があります。
でtouch_down
タッチ位置が野鳥エリア内かどうかを確認します。そうであれば、ブールフラグを真にします。
でtouch_dragged
、上記のフラグを確認し、true であれば、鳥の射撃中心と射撃角度に対するタッチ位置の距離を計算します。
ではtouch_up
、 を呼び出して、計算された量で撮影を注文できます。
body2shoot.applyLinearImpulse(impulse, body2shoot.getWorldCenter());
MouseJointDef
を移動する必要はありませんbody2shoot
。body2shoot
レンダリングの各サイクルでドラッグされるタッチ位置の変換を設定するだけです。
軌道を計算するために、次のようなクラスを作成しました。
public class ProjectileEquation
{
public float gravity;
public Vector2 startVelocity = new Vector2();
public Vector2 startPoint = new Vector2();
public ProjectileEquation()
{ }
public float getX(float t)
{
return startVelocity.x*t + startPoint.x;
}
public float getY(float t)
{
return 0.5f*gravity*t*t + startVelocity.y*t + startPoint.y;
}
}
それを描画するために、startPoint
andを設定startVelocity
し、ループでt
(時間)を段階的に指定して and を呼び出しgetX(t)
ますgetY(t)
。