Перемещение игрока с помощью клавиш со стрелками вместо большого пальца - PullRequest
2 голосов
/ 18 сентября 2011

Я работаю над двумерной игрой и хочу, чтобы игрок мог перемещаться с помощью клавиш со стрелками.

Мне удалось заставить игрока двигаться с помощью большого пальца левой руки (Xbox 360контроллер)

GamePadState gamePadState = GamePad.GetState(PlayerIndex.One);
hero.position.X += gamePadState.ThumbSticks.Left.X * 20;

Но я не могу понять, как перемещать его с помощью клавиш со стрелками.

Кто-нибудь может мне помочь?:)

1 Ответ

1 голос
/ 18 сентября 2011

Для работы с клавиатурой вы можете использовать Keyboard.GetState () , которая возвращает KeyboardState.Когда у вас есть состояние клавиатуры, вы можете вызвать KeyboardState.IsKeyDown () , чтобы определить, была ли нажата интересующая вас клавиша.Если клавиша нажата, то вы соответственно регулируете координаты x и y.

Помните, что джойстики являются аналоговыми входами, поэтому вы можете получить диапазон значений, показывающих, как далеко, влево, вправо, вверх или вниз был перемещен джойстик, что позволяет игроку контролировать скорость.Клавиатура цифровая, поэтому она либо нажата, либо нет, поэтому персонаж либо движется, либо нет.Существуют трюки, чтобы заставить это чувствовать себя похожим на клавиатуре, но сначала заставьте вашего персонажа двигаться, а затем вы можете вникнуть в это, если вам это даже нужно.в XNA этот код должен дать вам несколько идей о том, как обращаться с устройствами ввода.

...