如何在WP7上使用XNA创建连续手势之间的延迟?

3

我正在使用XNA开发一款移动游戏,并且有一个开关按钮,每次点击时都会改变状态。我的问题是它会在单次点击中快速多次改变状态。我应该怎么办才能防止这种情况的发生呢?

3个回答

2

存储上一次游戏中开关使用的时间,并计算经过的时间跨度

if(buttonPressed && (Datetime.Now - timeLastInGameSwitchActivated).Milliseconds > 1000)
{
    ToggleIngameSwitch();
    timeLastInGameSwitchActivated = Datetime.Now;
}

1

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

if(currentstate != prev)
{
dothis
}

我尝试减缓游戏的更新频率,但没有成功。如果为了打开开关必须使当前状态和上一个状态不同,那么这是否会阻止用户关闭开关? - user1865560
由于wp7每秒只有30帧,所以它会多次变化。你可以要求用户点击得非常快:p(开个玩笑)你需要一种存储状态的方式,以防止代码重复执行。 - Sayse

0
我使用这种简单的技巧来处理“延迟”问题。
float elapsed = (float)gameTime.ElapsedGameTime.Milliseconds;
timeCounter += elapsed;

if (timeCounter > yourMinimumDelayTime)
{
   //your code here
   timeCounter = 0;                     
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接