XNA随着时间的减少而减少变量

时间:2013-05-28 16:02:59

标签: xna

我实际上有一个健康栏,我想逐渐耗尽每一秒。酒吧耗尽的比率在另一个变量中声明,该变量将根据玩家在游戏中采取的行动而改变。

有关如何使用GameTime如何实现此目的的任何提示?

2 个答案:

答案 0 :(得分:2)

以下是一些您可能会发现有用的代码。首先,我们将声明一些变量,以便设置我们想要使用的时间间隔:

float timer = 3;
float const TIMER = 3;     //We also declare a const for resetting purposes

在您的更新方法中,您可以提取自上次更新以来经过的时间(增量时间),如下所示:

float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

仍然在您的更新方法中,您现在可以使用计时器变量减去已用时间:

timer -= elapsed;

现在您只需要检查您的计时器是否已过期,然后运行代码:

if (timer < 0)
{
    if (health > 0)
    {
        health -= rate;
        timer += TIMER;   //reset timer
    }
}

我就是这样做的。

答案 1 :(得分:0)

由于我不能对Jon的回答发表评论,我只会在帖子中添加评论作为回复。您可能想要使用“计时器+ =计时器”,否则您将失去部分时间。也就是说,3.2秒将变为3秒。