Я начал создавать класс Player
для своей игры, поэтому из-за количества элементов управления для игры я использовал массив Ключа в переключатель, чтобы сделать его простым. Он работает правильно со всеми ключами, кроме одного.Проблема XNA C# с клавиатурой клавиатуры
Когда я нажимаю клавишу пробела и клавиши со стрелками, он одновременно обнаруживает одну из клавиш со стрелками и пробел. Но это происходит только с пробелом. Я пытался решить это, но я прокомментировал часть пространства, и он делает то же самое.
Это не происходит, если я использую метод isDown
.
Вот код:
for (int Key = 0; Key < Keyboard.GetState().GetPressedKeys().Count(); Key++)
{
switch (Keyboard.GetState().GetPressedKeys()[Key])
{
case Keys.Up:
Move(Direction.Up);
Console.WriteLine("Up");
break;
case Keys.Down:
Move(Direction.Down);
Console.WriteLine("Down");
break;
case Keys.Left:
Move(Direction.Left);
Console.WriteLine("Left");
break;
case Keys.Right:
Move(Direction.Right);
Console.WriteLine("Right");
break;
case Keys.LeftShift:
if (!isShifting)
isShifting = true;
break;
case Keys.A:
if (!oldKeyboardState.IsKeyDown(Keys.A))
CastSkill(1);
break;
case Keys.Space:
shootMgr.Shoot();
break;
}
}
ли нажатие на пробел и стрелка в то же время работает в другом месте? На клавиатуре есть физическое ограничение, на котором вы можете нажать клавиши. –
Да, он работает в любой другой игре или приложении – user3273343