C# 在XNA中获得持续3秒的奖励
我正在XNA开发一款游戏,我对XNA也很陌生,但我必须从某个地方开始。我的游戏中几乎所有的东西都很完美。这是一款topview赛车游戏。唯一的问题是我想持续奖金,我从地图上拾取的时间持续给定的时间,比如3秒,我知道我需要使用计时器,但我不知道应该如何使用它 这是代码的一部分,当汽车与我地图的一块瓷砖碰撞时,我会使用:C# 在XNA中获得持续3秒的奖励,c#,timer,xna,C#,Timer,Xna,我正在XNA开发一款游戏,我对XNA也很陌生,但我必须从某个地方开始。我的游戏中几乎所有的东西都很完美。这是一款topview赛车游戏。唯一的问题是我想持续奖金,我从地图上拾取的时间持续给定的时间,比如3秒,我知道我需要使用计时器,但我不知道应该如何使用它 这是代码的一部分,当汽车与我地图的一块瓷砖碰撞时,我会使用: if (map[x][y] == 0) { if (speedBonus) { c
if (map[x][y] == 0)
{
if (speedBonus)
{
car.speed = 450;
}
else
{
car.speed = 200;
}
我希望你们中的一个人能帮我解决这个问题,因为我花了大约2个小时来修复它,但我的代码并没有帮我解决这个问题。提前谢谢 您需要记录领取奖金的时间,您可以将其保存到DateTime对象中。然后,在主循环的每次迭代中,检查时间跨度是否大于3秒。如果是这样,请删除奖金。您需要记录领取奖金的时间,您可以将其保存到DateTime对象中。然后,在主循环的每次迭代中,检查时间跨度是否大于3秒。如果是这样,请删除奖金。谢谢您的帮助,我通过以下方式修复了代码: 顶部有两个变量:
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;
}
if(map[x][y]==0)
{
if(速度奖金)
{
已用浮点=(浮点)gameTime.ElapsedGameTime.TotalSeconds;
计时器-=已用时间;
车速=450;
如果(timer感谢您的帮助,我用以下方式修复了代码:
顶部有两个变量:
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;
}
if(map[x][y]==0)
{
if(速度奖金)
{
已用浮点=(浮点)gameTime.ElapsedGameTime.TotalSeconds;
计时器-=已用时间;
车速=450;
中频(定时器)