我的更新功能被调用为每秒60次,并且播放器意味着在我的网格上以32像素的步长移动,因此播放器移动得非常快,我想要一种方式只接收每个像10帧的某些键输入,仍然让我的游戏以60fps运行。
答案 0 :(得分:3)
你可以
答案 1 :(得分:0)
最简单的方法是在按下按键时保持时间。没有办法降低输入系统的速度,所以你必须自己伪造它。这是一些让你开始的伪代码。
// See if the key is currently down
if (KeyIsDown(key))
{
if (gameTime.TotalGameTime >= nextTime)
{
// Move the character, and indicate that you want to wait another second for movement.
moveTheCharacter();
nextTime = gameTime.TotalGameTime + 1;
}
}
这种方法的主要优点是它总是基于时间而不是游戏的帧速率。因此,如果你出于某种原因丢帧,你的角色仍会以相同的速度移动。