1

絶え間ない射撃中のショット間のタイムスパンを定義しようとしていますが、次の試みで奇妙な動作をしました:

    public void Shoot(GameTime time)
    {
        bullets.Add(new Bullet("bullet", position, angle, content, this, bullets) );
        shotTimer = time.TotalGameTime.Milliseconds;
    }
    public void ShootContinuous(GameTime time)
    {
        if (time.TotalGameTime.Milliseconds - shotTimer > 50)
            this.Shoot(time);
    }

上記はこれによって呼び出されます:

if (newMouseState.LeftButton == ButtonState.Pressed)
{
    if (oldMouseState.LeftButton == ButtonState.Released)
    {
        player.Shoot(time);
        gui.ProcessClick(newMouseState);
    }
    else
    player.ShootContinuous(time);
}

動作は次のようになります。ボタンを押している間、4〜10のランダムな弾丸数でボレーを発射し、ボタンを認識してしばらく待ってからもう一度発射するまで何もしません。

誰もがこれの何が悪いのか考えていますか?

4

1 に答える 1

1

私がコードを正しく理解しているのであればTotalMilliseconds、ではなく、を使用する必要があります。Milliseconds

于 2012-05-25T09:45:28.003 に答える