如何在XNA Game Studio中创建和显示计时器

时间:2013-12-28 04:47:58

标签: c# timer xna

我正在XNA Game Studio中创建一个棋盘游戏风格的游戏。其中一个“迷你游戏”需要一个计时器。我尝试了各种方法但是,我很难过。如果有人可以提供帮助,我也希望它能被一个按钮激活。这是我目前的代码:

if (orbStart)
{
    int counter = 10;
    int limit = 50;
    float countDuration = 2f; //every  2s.
    float currentTime = 0f;
    currentTime += (float)gameTime.ElapsedGameTime.TotalSeconds; 

    if (currentTime >= countDuration)
    {
        counter++;
        currentTime -= countDuration;    
    }

    if (counter >= limit)
    {
        //Stuff
    }

    }
}

OrbStart是按钮激活的布尔值。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

好的,首先创建全局变量,例如:

bool isTimerOn = false;
float counter = 10; // 10 seconds

然后,当用户按下按钮时,您应该将isTimerOn更改为true,希望您知道如何操作。下一步 - 在更新方法中,从计数器值的最后一个刻度中减去经过的时间,并检查时间是否结束:

if (isTimerOn)
{
   counter -= gameTime.ElapsedGameTime.Seconds;
   if (counter <= 0)
   doSomething();
}

哦,我注意到你也想要帮助你的按钮。首先,您应该创建一个Recentagle,其中将放置您的按钮:

Rectangle button = new Rectangle(50, 60, 100, 30);

此代码表示您的按钮左上角位于(50,60),宽度为100,高度为30.您可以真正阅读如何在此位置绘制精灵,因为它已经讨论了几个在这里。 要检查用户是否单击了我们的按钮,只需阅读有关如何处理手势并检查tap的位置是否在我们的矩形内部,这里是代码:

while (TouchPanel.IsGestureAvailable)
{
   GestureSample gs = TouchPanel.ReadGesture();
   switch (gs.GestureType)
   {
     case GestureType.Tap:
       if (button.Contains((int) gs.Position.X, (int) gs.Position.Y))
          isTimerOn = true;
     break;
   }
}

为了使其工作,还有一件事 - 你必须启用轻击手势。在LoadContent()方法内添加:

TouchPanel.EnabledGestures = GestureType.Tap;