我现在有一个看起来像这样的函数:
public static bool IsKeyDownWithDelayPassed(Keys key, int delay)
{
bool timeElapsed = stopWatch.ElapsedMilliseconds > delay;
bool isKeyDown = currentKeyboardState.IsKeyDown(key);
if (timeElapsed && isKeyDown)
{
stopWatch.Restart();
}
return timeElapsed && isKeyDown;
}
这非常有效,但一次只能使用一个键。例如,如果我想使用箭头键并进行对角线移动(同时按住右箭头键和下箭头键),它就不起作用。
我想到了一个涉及Dictionary
映射Keys
到Stopwatch
es 的解决方案,但这似乎有点过于复杂。我是否遗漏了可以简化此任务的内容?
谢谢。