![]() |
Нажатие клавиши в XNA
Как я понял, в XNA нету обработчика события нажатия клавиши, а задача в том чтобы заданый код выполнялся один раз при нажатии клавиши.
Например если так Код:
if (Keyboard.GetState().IsKeyDown(Keys.L) && !click_l) Если Код:
bool click = false; /// Вне метода Но меня волнует то, что в таком случае будет много лишнего кода, и для каждой кнопки делать так будет неправильно. Попытка засунуть этот код в метод не дала результата, так как опять же для коректной работы нужно было для каждого вызова метода объявлять переменную которая отвечала за нажатие. Даже создание отдельного класса и написании переменной как член класса не дало результата. |
Сделайте сами обработчик IsKeyPressed
Создаете класс, там два массива bool Keys[256], OldKeys[256]. Сперва все false, при нажатии кнопки один элемент в массиве Keys становится true, OldKeys=Keys и на следующем заходе сравниваете, если Keys[i]!=OldKeys[i] значит кнопка была нажата или отпущена |
Я, конечно, понимаю, что лет так на 6 опоздал, но всё же.
Код:
|
Время: 09:30. |
Время: 09:30.
© OSzone.net 2001-