1

我对 C# 编程相当陌生,这是我第一次在 XNA 中使用它。我正在尝试与朋友创建游戏,但我们正在努力制作基本的计数器/时钟。我们需要的是一个从 1 开始的计时器,每 2 秒 +1,最大容量为 50。对编码的任何帮助都会很棒!谢谢。

4

2 回答 2

3

要在 XNA 中创建计时器,您可以使用如下内容:

int counter = 1;
int limit = 50;
float countDuration = 2f; //every  2s.
float currentTime = 0f;

currentTime += (float)gameTime.ElapsedGameTime.TotalSeconds; //Time passed since last Update() 

if (currentTime >= countDuration)
{
    counter++;
    currentTime -= countDuration; // "use up" the time
    //any actions to perform
}
if (counter >= limit)
{
    counter = 0;//Reset the counter;
    //any actions to perform
}

我也不是 C# 或 XNA 方面的专家,所以我很感激任何提示/建议。

于 2012-11-15T10:05:12.143 回答
-1

如果您不想使用 XNA ElapsedTime,您可以使用 c# timer。你可以找到关于那个的教程,这里是计时器的 msdn 参考

无论如何,这里有一些代码或多或少地做你想要的。

首先,您需要在您的类中声明如下内容:

    Timer lTimer = new Timer();
    uint lTicks = 0;
    static uint MAX_TICKS = 50;

然后你需要在任何你想要的地方初始化计时器

    private void InitTimer()
    {
        lTimer       = new Timer();
        lTimer.Interval = 2000; 
        lTimer.Tick += new EventHandler(Timer_Tick);
        lTimer.Start();
    }

然后在 Tick 事件处理程序中,您应该每 50 个刻度做任何您想做的事情。

    void Timer_Tick(object sender, EventArgs e)
    {
        lTicks++;
        if (lTicks <= MAX_TICKS)
        {
            //do whatever you want to do
        }
    }

希望这可以帮助。

于 2012-11-15T10:09:48.487 回答