XNA,游戏时间和不断的火力

本文关键字:游戏时间 XNA | 更新日期: 2023-09-27 18:35:14

我试图定义持续射击期间射击之间的时间跨度,但以下尝试得到了奇怪的行为:

    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 的随机子弹计数进行齐射,然后什么都不做,直到我意识到按钮,稍等片刻,然后再次射击。

有人知道这有什么问题吗?

XNA,游戏时间和不断的火力

如果我

正确理解代码,您应该使用TotalMilliseconds,而不是Milliseconds