Time XNA游戏:计算两次射击之间的时间

Time XNA游戏:计算两次射击之间的时间,time,xna,Time,Xna,我想用XNA库做一个游戏。我想要一个精灵投掷一个火球来击中坠落的小行星。但我在按下混凝土键时遇到了一个问题:例如,我想在两次投掷之间的一秒钟内投掷火球 我想测量创建实例之间的时间差。我该怎么做?每次调用主游戏类或任何游戏组件的更新都会收到一个游戏时间的实例作为参数。它的属性可以用来累积时间的流逝。u您可以使用传递给Update方法的gameTime变量的属性,如下所示: const float shootTimer = 1.0f; float elapsedTime = 0f; protect

我想用XNA库做一个游戏。我想要一个精灵投掷一个火球来击中坠落的小行星。但我在按下混凝土键时遇到了一个问题:例如,我想在两次投掷之间的一秒钟内投掷火球


我想测量创建实例之间的时间差。我该怎么做?

每次调用主
游戏
类或任何
游戏组件
更新
都会收到一个
游戏时间
的实例作为参数。它的属性可以用来累积时间的流逝。

u您可以使用传递给
Update
方法的
gameTime
变量的属性,如下所示:

const float shootTimer = 1.0f;
float elapsedTime = 0f;

protected override void Update(GameTime gameTime)   
{   
    // Allows the game to exit   
    if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)   
        this.Exit();   

    elapsedTime += gameTime.ElapsedGameTime.TotalSeconds;  

    if(elapsedTime >= shootTimer && /* Your logic to see if you should shoot a fireball */ )
    {
        // Shoot the fireball!
        elapsedTime = 0f;
    }

    base.Update(gameTime);   
}   
基本上,您在上述代码中所做的是设置每次放炮之间需要经过的最小值(秒)。 然后创建一个变量,该变量将存储每次放炮之间经过的时间量

Update
方法中,添加每次
Update
调用之间的时间,然后检查它是否大于计时器,如果大于计时器,则拍摄并重置经过的时间

注意:这段代码是我心血来潮写的,所以可能会有一些小问题