我正在嘗試使用XNA庫進行遊戲。我想讓一個精靈們投擲一個火球來擊落小行星。但我在按下具體的關鍵時遇到了問題:例如,我想在投擲之間擲出一秒火球。XNA遊戲:計算兩次拍攝之間的時間
我想測量創建實例之間的時間差。我怎樣才能做到這一點?
我正在嘗試使用XNA庫進行遊戲。我想讓一個精靈們投擲一個火球來擊落小行星。但我在按下具體的關鍵時遇到了問題:例如,我想在投擲之間擲出一秒火球。XNA遊戲:計算兩次拍攝之間的時間
我想測量創建實例之間的時間差。我怎樣才能做到這一點?
UYou可以使用gameTime
變量傳遞給Update
方法這樣的ElapsedGameTime屬性:
const float shootTimer = 1.0f;
float elapsedTime = 0f;
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
elapsedTime += gameTime.ElapsedGameTime.TotalSeconds;
if(elapsedTime >= shootTimer && /* Your logic to see if you should shoot a fireball */)
{
// Shoot the fireball!
elapsedTime = 0f;
}
base.Update(gameTime);
}
基本上,要在上面的代碼做的是設置一個最小值(秒)需要在每次射門之間傳遞。 然後,您創建一個變量來存儲每次拍攝之間所經過的時間量。
在Update
方法中,您可以在每個Update
調用之間添加時間,然後檢查它是否大於定時器,如果是,則您拍攝並重置已用時間。
注意:我寫了一段代碼,因爲它可能有一些小問題。
您主Game
類別的任何Update
或任何GameComponent
的每次呼叫都會收到GameTime
的實例作爲參數。它的財產ElapsedGameTime
可以用來積累時間的流逝。
感謝您的回答!有用! :) – Gerixxx 2014-10-28 02:34:00