状态条和时间

时间:2010-01-03 17:52:59

标签: c#

我正在创建一个游戏...我想添加一个计数器作为时钟与Microsoft solitair game&中的Time计时器完全相同。我希望以后当游戏超过时间停止并且时间到达时保存在变量中,但我想用这个数字来生成分数表。

提前... 我会在100%完成后发布整个游戏所以你们可以享受: - )

1 个答案:

答案 0 :(得分: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);

现在,您可以在条带中显示“elapsedtime”字符串。

编辑:

要查看移动时间,请在按钮点击处理程序中输入以下内容:

    // 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;
        }