3

我正在使用 XNA 开发一款手机游戏,并且有一个打开和关闭开关,只要点击它就会改变状态。我的问题是它一次点击就可以快速多次更改。我该如何阻止这个?

4

3 回答 3

2

Store a time the in-game switch was last used and calculate the timespan passed

if(buttonPressed && (Datetime.Now - timeLastInGameSwitchActivated).Milliseconds > 1000)
{
    ToggleIngameSwitch();
    timeLastInGameSwitchActivated = Datetime.Now;
}
于 2012-11-30T08:50:17.327 回答
1

添加一个先前的值变量来检查按钮的最后状态,如果它与当前不同,则执行所需的代码 ButtonState prev = state

if(currentstate != prev)
{
dothis
}
于 2012-11-30T08:05:21.123 回答
0

我使用这种简单的技术来处理“延迟”的东西。

float elapsed = (float)gameTime.ElapsedGameTime.Milliseconds;
timeCounter += elapsed;

if (timeCounter > yourMinimumDelayTime)
{
   //your code here
   timeCounter = 0;                     
}
于 2012-12-01T04:26:05.450 回答