我對C#編程還很陌生,這是我第一次在XNA中使用它。我試圖與朋友創建一個遊戲,但我們正在努力製作一個基本的計數器/時鐘。我們需要的是一個計時器,從1開始,每2秒+1,最大容量爲50.任何編程幫助都會很棒!謝謝。如何在C#中創建一個定時器/計數器XNA
0
A
回答
3
要創建一個定時器XNA你可以使用這樣的事情:
int counter = 1;
int limit = 50;
float countDuration = 2f; //every 2s.
float currentTime = 0f;
currentTime += (float)gameTime.ElapsedGameTime.TotalSeconds; //Time passed since last Update()
if (currentTime >= countDuration)
{
counter++;
currentTime -= countDuration; // "use up" the time
//any actions to perform
}
if (counter >= limit)
{
counter = 0;//Reset the counter;
//any actions to perform
}
我絕不是在C#或XNA的專家爲好,所以我很感謝任何提示/建議。
-1
如果您不想使用XNA ElapsedTime,則可以使用c#計時器。你可以找到關於這個的教程,這裏的msdn reference for timer
無論如何,這裏是一些代碼,多少做你想要的。
首先,你需要在你的類類似的東西來聲明:
Timer lTimer = new Timer();
uint lTicks = 0;
static uint MAX_TICKS = 50;
然後,你需要初始化等。無論您想
private void InitTimer()
{
lTimer = new Timer();
lTimer.Interval = 2000;
lTimer.Tick += new EventHandler(Timer_Tick);
lTimer.Start();
}
然後在蜱事件處理程序,你應該做的計時器任何你想每50個滴答。
void Timer_Tick(object sender, EventArgs e)
{
lTicks++;
if (lTicks <= MAX_TICKS)
{
//do whatever you want to do
}
}
希望,這有助於。
+0
非常感謝,我會嘗試一下,看看最合適的感覺。 –
+3
-1。 XNA不是基於事件的API。使用基於事件的計時器是單向的。使用經過的時間是適當的。 –
相關問題
- 1. 如何在C#中創建一個計時器計數器
- 2. 如何在C#中創建計時器?
- 3. 我如何在xcode 4.5中創建一個倒數計時器
- 4. 如何在C中創建一個定時器?
- 5. 在Android中創建一個計時器
- 6. 創建一個定時器計數器 - Python的
- 7. 如何使用C#XNA定時器?
- 8. 在MySQL中創建一個定時器
- 9. C++/Win32如何創建一個蛋蛋計時器
- 10. 如何在Cookie中創建計時器?
- 11. 在Eclipse中創建一個01:00倒數計時器(精密計時器)
- 12. 如何在遞歸函數中創建一個計數器
- 13. 如何創建計時器?
- 14. 用Javascript創建一個計時器定時器/ jquery
- 15. 如何在WPF中創建一個計時器?
- 16. 如何在Spritekit中創建一個計時器?
- 17. 麻煩創建一個計時器從一個給定的時間計數
- 18. 創建時間計數器Objective-C
- 19. 如何在joomla 2.5中創建一個計數器模塊?
- 20. 如何在simulink中創建一個計數器
- 21. 如何在React.js中創建一個計數器ID?
- 22. 如何創建計數器?
- 23. 使用C創建一個計算器
- 24. 創建目標C(iPhone開發)一個倒數計時器
- 25. 如何創建一個RESTful計算器?
- 26. 如何在xna中創建類--C#
- 27. 如何創建一個與C中的遊戲同時工作的計時器?
- 28. 在XNA上創建一個WinForm C#
- 29. 我如何創建一個計數器計數
- 30. 創建一個計時器計時器以打破java
我決定跟你給我的答案一樣;然而,我無法弄清楚應該用.TotalSeconds執行什麼操作,這是我現在收到的唯一錯誤。有什麼辦法可以幫助我嗎? 編輯:我收到的錯誤是「'NullReferenceException未處理'對象引用未設置爲對象的實例」。 –
由於gameTime只能出現該錯誤,因此a)您沒有將GameTime傳遞給該方法,b)您沒有在Update方法中使用該方法,或者c)兩者都是! gameTime必須是您從XNA中的標準循環中收到的參數。 –