Вопрос № 64316: Здравствуйте, уважаемые эксперты, подскажите, как обрабатывать нажатие срзу нескольких клавиш?
Я пишу игру и необходимо, чтобы объект при зажатии клавиш влево и вверх двигался по диагонали....
Вопрос № 64.316
Здравствуйте, уважаемые эксперты, подскажите, как обрабатывать нажатие срзу нескольких клавиш?
Я пишу игру и необходимо, чтобы объект при зажатии клавиш влево и вверх двигался по диагонали.
Отправлен: 26.11.2006, 21:21
Вопрос задал: Svanshe (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ross
Здравствуйте, Svanshe!
Для этой цели можно использовать, например, функцию
SHORT GetAsyncKeyState(
int vKey // virtual-key code
);
которая возвращает состояние определенной клавиши на момент опроса. Простейший вариант использования - установить таймер и опрашивать состояние клавиш:
if (GetAsyncKeyState(VK_LEFT)) go_left();
if (GetAsyncKeyState(VK_DOWN)) go_down();
и т.д.
Ответ отправил: Ross (статус: 2-ой класс)
Ответ отправлен: 26.11.2006, 23:31
Отвечает: IceWolf
Здравствуйте, Svanshe!
Можно обрабатывать сообщения WM_KEYDOWN и WM_KEYUP. Для нажатия/отпускания каждой клавиши посылается своё сообщение.
С уважением, ICEW0|f.
Приложение:
--------- Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!
Ответ отправил: IceWolf (статус: 4-ый класс)
Ответ отправлен: 27.11.2006, 00:05