我实际上有一个健康栏,我想逐渐耗尽每一秒。酒吧耗尽的比率在另一个变量中声明,该变量将根据玩家在游戏中采取的行动而改变。
有关如何使用GameTime如何实现此目的的任何提示?
答案 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秒。