0

だから私はJavaで一種の宇宙ゲームを作っています。現在、宇宙船は、ユーザーが何もしていない場合は所定の位置に留まり、ユーザーのキー入力に基づいてさまざまな方向に一定の速度で移動します。

宇宙船が動いているときに、ユーザーがキーを押し続けると、宇宙船の速度が速く加速するように変更したいと思います。

私の移動方法では、私は現在持っています

public void move() {
    x += dx;
    y += dy;
}

私はそのようなことをやってみました

public void move() {
    x *= dx;
    y *= dy;
}

しかし、値を絶えず増やすと、宇宙船の動きが速すぎます。

これを行うための別のアプローチはありますか?

前もって感謝します。

4

1 に答える 1

1

dx選択したキーボードイベントに応じて変更する必要があるようです。それで:

  • キー押下をキャプチャするリスナーを作成する
  • キーをテストして、目的のキーかどうかを確認します(上矢印、下矢印など)。
  • それに応じてインクリメント/デクリメントdx(最小/最大値のテスト)。dx?の現在の値に基づいて、ここでいくつかの楽しい物理式を実行できます。

次に、宇宙船moveのときはdx、ユーザーがキーを叩いた回数に応じて、大きくなるか小さくなります。

于 2012-11-29T01:32:20.537 に答える