0

我正在 XNA 中构建游戏,而且我对 XNA 也很陌生,但我必须从某个地方开始。我游戏中的几乎所有东西都完美无缺。这是一款顶视图赛车游戏。唯一的问题是我想持续获得奖金,我从地图上拾取的奖励持续给定时间,比如 3 秒,我知道我需要使用计时器,但我不知道应该如何使用它。

这是代码的一部分,当汽车与我的地图图块相撞时我使用:

 if (map[x][y] == 0)
        {
            if (speedBonus)
            {
                car.speed = 450;
            }
            else
            {
                car.speed = 200;
            }

我希望你们中的一个可以帮助我解决这个问题,因为我花了大约 2 个小时来修复它,但我的代码并没有帮助我。提前致谢!

4

2 回答 2

3

您需要记录领取奖金的时间,您可以将其保存到 DateTime 对象中。然后,在主循环的每次迭代中,检查 TimeSpan 是否大于 3 秒。如果是这样,请删除奖金。

于 2012-11-20T21:44:42.273 回答
0

感谢您的帮助,我以这种方式修复了我的代码:

顶部有 2 个变量:

float timer = 3;
const float TIMER = 3;

在更新中:

if (map[x][y] == 0)
        {
            if (speedBonus)
            {
                float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
                timer -= elapsed;

                car.speed = 450;

                if (timer <= 0)
                {
                    speedBonus = false;
                    timer = TIMER;   //Reset Timer
                }
            }
            else
            {
                car.speed = 200;
            }

它现在就像一个魅力,感谢您的帮助!

于 2012-11-20T22:20:59.517 回答