2010-01-03 3 views
0

Im, создающий игру ... Я хочу добавить счетчик в качестве часов точно так же, как счетчик времени в игре для солитера Microsoft & Я хочу, чтобы позже, когда игра закончилась, время и достигнутое время чтобы быть сохраненным в переменной, что когда-либо, но я хочу использовать это число для создания таблицы баллов.Status strip and Time

спасибо заранее .... я буду размещать всю игру, когда его 100% сделали это вы, ребята, можете наслаждаться :-)

+2

Какой именно вопрос? – albertein

+0

как создать это время и позволить ему остановиться, когда игра закончена и сэкономить время, достигнутое – Tony

+0

Пожалуйста, не публикуйте всю игру здесь. Не используйте StackOverflow в качестве личного блога. –

ответ

6

Вы можете использовать Секундомер объект.

Вот ссылка о том, как использовать его: http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx

Для запуска секундомера сделать это:

Stopwatch stopWatch = new Stopwatch(); 
     stopWatch.Start(); 

Для остановки:

stopWatch.Stop(); 
     // Get the elapsed time as a TimeSpan value. 
     TimeSpan ts = stopWatch.Elapsed; // gets elapsed time 

Чтобы показать время, который истекшее:

// Format and display the TimeSpan value. 
     string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
      ts.Hours, ts.Minutes, ts.Seconds, 
      ts.Milliseconds/10); 

Теперь вы можете отобразить строку «прошедшее время» в своей полосе.

EDIT:

Чтобы увидеть время перемещения, поместите следующее в Button обработчик щелчка, чтобы время начала:

// global variable 
     string timeelepse = string.empty; 
    // in button click handler 
    System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); 


      sw.Start(); 

      System.Threading.Thread t = new System.Threading.Thread(delegate() 
      { 
       while (true) 
       { 
       TimeSpan ts = sw.Elapsed; 

       string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
       ts.Hours, ts.Minutes, ts.Seconds, 
       ts.Milliseconds/10); 

       timeelepse = elapsedTime; 

        UpdateLabel(); 
       } 
      }); 
      t.Start(); 

Теперь добавьте эти две функции & делегата в класс формы:

public delegate void doupdate(); 
     public void UpdateLabel() 
     { 
      doupdate db = new doupdate(DoUpdateLabel); 
      this.Invoke(db); 
     } 

     public void DoUpdateLabel() 
     { 
      toolStripStatusLabel1.Text = timeelepse; 
     } 
+0

Im kinda потерянный в этом коде на MSDN ... :-(Мне нужна помощь Я не думаю, что мне нужны все эти вещи – Tony

+0

Как насчет таймера в панели инструментов can not Я использую это? Если да, то как? – Tony

+0

Если вам нужно что-то сделать каждый интервал, то вы должны использовать таймер, просто подсчитывая время, я думаю, что секундомер подходит лучше. Я отредактировал свой ответ для вас. –