簡體   English   中英

保存特定的計時器刻度

[英]Save a specific timer tick

我正在Winforms(c#)中創建一個游戲,並且我創建了一個計時器來跟蹤正在進行的時間,並且在游戲停止時計時器停止。 但是我沒有成功節省計時器在游戲停止時顯示的時間並將其發布。

這就是我建立計時器功能的方式。

private Timer timers;
public event EventHandler Tick;

StartGame()
{
  ...
  timers = new Timer();
  timers.Interval = 1000;
  timers.Tick += new EventHandler(TimerTick);
  timers.Enabled = true;
}

private void TimerTick(object sender, EventArgs e) 
{
  Time++;
  OnTick();
}

protected void OnTick() 
{
   if (Tick != null) 
   {
      Tick(this, new EventArgs());
   }     
}

不要使用計時器來測量時間-計時器永遠不會准確,應該用於觸發事件,僅此而已。 尤其不是System.Windows.Forms.Timer ,它在GUI線程中運行並且可以被其他消息阻止。

根據您的問題,您想跟蹤游戲時間。 這是我的方法:

private Stopwatch _sw = new Stopwatch();

public void StartOrResumeGame() {
    _sw.Start();
}
public void StopOrPauseGame() {
    _sw.Stop();
    _gameTimeMessage = String.Format("You have been playing for {0} seconds.", _sw.TotalSeconds);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM