0

私は現在、Java で単純な 2D ゲームをゼロから作成しています (学習目的で)。

プレイヤーがシュートできる速度を制御したい。そこで行われた方法は機能しますが、改善される可能性があります。ユーザーがマウスの左ボタンを押したままにすると、メソッドが呼び出されます。ユーザーがボタンを押したままにしている場合は機能しますが、マウス ボタンを離して (rateOfFire 時間よりも長く) 待ってから撃とうとすると、roftC の値が更新されないため、機能する場合と機能しない場合があります。プレーヤーは撃ちません。次に、それをメソッドに入れようとしましたupdate()(1秒間に60回呼び出されます)。問題はまだ存在します。これを解決する方法が本当にわかりません。これが私のコードです:

/**
 * Used to control the rate of fire
 */
private int roftC = 0;
/**
 * Shoot a Projectile
 */
protected void shoot(int x, int y, double dir) {
        Projectile p = new Bomb(x, y, dir);
        if (roftC % p.getRateOfFire() == 0) {
            level.addProjectile(p);
        }
        if (roftC > 6000) {
            roftC = 0;
        }
        roftC++; // Whether it is here or down there doesn' t make a diffrence
}


 /**
  * 
  */
  @Override
  public void update() {
      // roftC++;
    }
4

1 に答える 1