2014-11-22 2 views
-1

Я хочу создать игру, и я бы хотел поместить в нее таймер, пока он работает, способ, которым игрок может ввести желаемую продолжительность, и это закончит программу в конце то время. Как я могу заполнить условие while в следующем коде, чтобы достичь этого?Countdown in do 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

+0

Ваш вопрос редактировался, потому что он использовал неправильное форматирование. По потенциальным причинам downvoting, посмотрите на всплывающую подсказку кнопки downvote. –

ответ

0

Я бы рекомендовал положить в STARTTIME в самом начале, и вы можете ссылаться на него в то время цикла, как это:

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

Вы можете дать gameInterval необходимое значение для того, как долго игра должна бежать за. Если вы достигнете цикла while, и общая продолжительность между вами и вашим стартом превышает этот интервал, вы не будете снова зацикливаться.

EDIT

У меня нет моего IDE открыт, но я не считаю, что выше правильный синтаксис, однако он все равно должны подтолкнуть вас в правильном направлении. У этого question есть хороший ответ на получение длительности, которая должна вам помочь.

EDIT 2 Я изменил приведенный выше код, чтобы использовать TimeSpan, и это делает предположение gameInterval в минутах, однако вы можете это изменить.

+0

DateTime.Now(), похоже, не работает. Я могу быть глупым, но я не мог получить решение, которое я ищу, из другого вопроса, который вы поделили. Я получаю, как TimeSpan работает сейчас, и это происходит, но я до сих пор не знаю, как использовать его в этой конкретной ситуации. Как получить начальное время? – Cilinder

+0

@Cilinder см. Редактирование. Извините, все мои C# код на работе, и я вроде как уходит из памяти. – AdamMc331

+0

В нем говорится: «Невозможно преобразовать тип« System.DateTime »в« System.TimeSpan ». Любой совет? – Cilinder