В настоящее время я разрабатываю XNA/C#. Когда пользователь нажимает клавишу (Keys.Right
), мне нужно переместить объект. Я хочу, чтобы это произошло
- когда пользователь нажимает клавишу
- через 1 секунду, пока пользователь держит клавишу, а затем каждые 0,25 секунды.
Я уже реализовал первый:
_kbOld = _kbNew;
_kbNew = _kb.GetState();
if(_kbNew.IsKeyDown(Keys.Right) &&
_kbOld.IsKeyUp(Keys.Right))
{
//Do something
}
Как бы я сделал другие действия? У меня были следующие идеи:
A
Queue<KeyboardState>
, отслеживание последнихKeyboardState
sСохранение времени последнего нажатия и отпускания клавиши (
GameTime
)
Это должно работать как ввод текста в Windows: когда вы удерживаете букву, она повторяется через определенное время.
Какой способ я должен использовать? У вас есть другие идеи?
Заранее спасибо!