Состояние клавиши (newKeyState
в приведенном выше коде) представляет собой фактическое физическое состояние клавиатуры, поэтому невозможно или нежелательно устанавливать состояние клавиши, отпущенной, когда пользователь все еще удерживает ее нажатой. Однако есть несколько альтернатив, которые позволят вам достичь желаемого конечного результата:
1) Вы можете реструктурировать свой код, например,
if(newKeyState.IsKeyDown(Keys.W))
{
position.Y -= vel;
}
else if(newKeyState.IsKeyDown(Keys.S))
{
position.Y += vel;
}
// etc.
2) Вы можете поддерживать свое собственное состояние (т. Е. Кэшированную версию newKeyState
) и устанавливать ключи, выпущенные в этом.