2014-11-22 168 views
-1

我想製作一個遊戲,我想在它運行時放置一個計時器,一種玩家可以輸入所需持續時間的方式,它會在結束時結束程序那時。如何填寫以下代碼中的while條件以實現此目的?倒計時在C而做#

ConsoleKeyInfo info; 
jatek j = new jatek(); 
do 
{ 
    Console.Clear(); 
    Console.WriteLine(j.Jatekter()); 
    info = Console.ReadKey(true); 
    switch (info.Key) 
    { 
     case ConsoleKey.UpArrow: j.Mozgas(-1, 0); break; 
     case ConsoleKey.DownArrow: j.Mozgas(1, 0); break; 
     case ConsoleKey.LeftArrow: j.Mozgas(0, -1); break; 
     case ConsoleKey.RightArrow: j.Mozgas(0, 1); break; 
     case ConsoleKey.Escape: j.Vege = true; break; 
    } 
} while(); 
+0

爲什麼我的問題編輯和-1'd?當我需要考慮更多的問題時,我必須等待4(!)天才能提出另一個問題,考慮到我的項目將於下個星期五到期......我一直只是禮貌地回答我的答案,而你只是-1我。如果你問我,會覺得很討厭和不受歡迎。 – Cilinder 2014-11-22 23:29:20

+0

你的問題被編輯,因爲它使用了不正確的格式。有關降低投票的潛在原因,請查看downvote按鈕的工具提示。 – 2014-11-23 12:02:13

回答

0

我建議在開始投入開始時間,你可以在while循環中這樣引用它:

DateTime startTime = DateTime.Now; 
do 
{ 
    // Game play 
} while(((TimeSpan) (DateTime.Now - startTime)).TotalMinutes < gameInterval); 

你可以給gameInterval的遊戲要多長時間必要的值競選。如果你到達while循環,從現在開始到你開始的時間間隔超過了這個時間間隔,你將不會再次循環。

編輯

我沒有我的IDE中打開,但我不相信上面是正確的語法,但它仍然應該把你在正確的方向。這個question有一個很好的答案來獲得持續時間,這應該對你有所幫助。

編輯2我已經改變了上面的代碼來使用TimeSpan,它使得假設gameInterval在幾分鐘內,但是你可以改變它。

+0

DateTime.Now()似乎不起作用。我可能很愚蠢,但我無法從你分享的其他問題中獲得我正在尋找的解決方案。我瞭解了TimeSpan現在的工作方式,但我仍然不知道如何在這種特殊情況下使用它。我如何獲得開始時間? – Cilinder 2014-11-22 19:58:23

+0

@Cilinder請參閱編輯。我很抱歉,我的所有C#代碼都在工作,而且我有種記憶力。 – AdamMc331 2014-11-22 20:02:20

+0

它說:'不能將類型'System.DateTime'轉換爲'System.TimeSpan''。有什麼建議? – Cilinder 2014-11-22 20:08:47