2012-11-20 39 views
0

我在XNA打造​​一款遊戲,而且我對XNA也很新穎,但我必須從某處開始。幾乎我的遊戲中的所有內容都很完美。這是一款頂級賽車遊戲。唯一的問題是,我想持續的獎金,我從地圖最後一個特定的時間,如3秒鐘,我知道我需要使用一個計時器,但我不知道我應該如何使用它。在XNA中最後3秒做一個獎勵

這是代碼的一部分,當車與我的地圖圖塊碰撞我用:

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

我希望你們中的一個人可以幫我解決這個問題,因爲我已經花了像2幾小時修復它,但我的代碼並沒有幫助我。提前致謝!

回答

0

感謝您的幫助,我定我的代碼是這樣的:

有了兩個變量之上:

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; 
      } 

它現在就像一個魅力,感謝您的幫助!

3

您需要記錄獎勵被拿起的時間,您可以將其保存到DateTime對象中。然後,在主循環的每次迭代期間,檢查TimeSpan是否大於3秒。如果是這樣,請刪除獎金。