我正在开发一款使用XNA的手机游戏,并且有一个开关,可以在每次点击时改变状态。我的问题是它从一次点击快速变化多次。我该怎么做呢?
答案 0 :(得分:2)
存储上次使用游戏中开关的时间并计算传递的时间跨度
if(buttonPressed && (Datetime.Now - timeLastInGameSwitchActivated).Milliseconds > 1000)
{
ToggleIngameSwitch();
timeLastInGameSwitchActivated = Datetime.Now;
}
答案 1 :(得分:1)
添加前一个值变量以检查按钮的最后状态,如果它与当前状态不同,则执行所需的代码 ButtonState prev = state
if(currentstate != prev)
{
dothis
}
答案 2 :(得分:0)
我使用这种简单的技术来处理'延迟'的东西。
float elapsed = (float)gameTime.ElapsedGameTime.Milliseconds;
timeCounter += elapsed;
if (timeCounter > yourMinimumDelayTime)
{
//your code here
timeCounter = 0;
}