gpt4 book ai didi

c# - 如何在按键持续一定时间后重复操作?

转载 作者:行者123 更新时间:2023-11-30 17:07:09 25 4
gpt4 key购买 nike

我目前正在使用 XNA/C# 进行开发。当用户按下一个键 ( Keys.Right ) 时,我需要移动一个对象。我希望这发生

  1. 当用户按下按键时
  2. 在用户按住按键 1 秒后,然后每 .25 秒。

我已经实现了第一个:

_kbOld = _kbNew;
_kbNew = _kb.GetState();
if(_kbNew.IsKeyDown(Keys.Right) &&
_kbOld.IsKeyUp(Keys.Right))
{
//Do something
}

我将如何执行其他操作?我有以下想法:

  • A Queue<KeyboardState> , 跟踪最后一个 KeyboardState

  • 保存最后一次按下和释放键的时间 ( GameTime )

它应该像 Windows 中的文本输入一样工作:当您按住一个字母时,它会在一定时间后重复。

我应该使用哪种方式?你还有其他想法吗?

提前致谢!

最佳答案

我会像您建议的那样简单地存储上次推送时间:

if (IsPressed())
{
// Key has just been pushed
if (!WasPressed())
{
// Store the time
pushTime = GetCurrentTime();

// Execute the action once immediately
// like a letter being printed when the button is pressed
Action();
}

// Enough time has passed since the last push time
if (HasPassedDelay())
{
Action();
}
}

关于c# - 如何在按键持续一定时间后重复操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14811752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com