如何为每个(数字)毫秒运行的游戏制作一个“循环”?

时间:2013-08-20 14:53:09

标签: c# visual-studio game-loop

我试图在google和stackoverflow上搜索这个,但我不确定该怎么称呼它,所以我找不到它。

如何为C#程序制作一个“循环”,每个程序运行100毫秒?类似于Minecraft所说的“滴答声”,或者GameMaker称之为“步骤”。

我无法弄清楚如何做到这一点。我正在使用visual studio,我有一个主窗口。有些事情我想要不断执行,所以我想弄清楚如何制作“步骤”或“更新”功能。

3 个答案:

答案 0 :(得分:0)

如果你希望它运行100毫秒,你会这样做

System.Timers.Timer timer = new System.Timers.Timer(100);
public void Initialize(object sender, EventArgs e)
{
  timer.Elapsed+=Elapsed;
}
public void Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  //do stuff
}

你可以做的其他事情,但我不认为这个效率很高

        using System.Threading;

        Thread th = new Thread(new ThreadStart(delegate
        {
            while (true)
            {
                Thread.Sleep(100);
                //do stuff
            }
        }));

或者,您可以下载monogame以在c#

中制作更精彩的游戏

http://www.monogame.net/

它有自己的gameTime控件。

答案 1 :(得分:-1)

您在考虑Timer吗?

http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

  

在应用程序中生成重复事件。

答案 2 :(得分:-1)

您可以使用Timer控件,该控件可以设置为以给定间隔打勾。 interval属性以毫秒为单位,因此您需要Timer1.Interval = 100;