Четверг, 21 Ноября 2024, 22:57

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Мгновенный отклик от клавиатуры.
DracДата: Среда, 25 Сентября 2013, 18:00 | Сообщение # 1
частый гость
Сейчас нет на сайте
Подскажите, как осуществить действие по нажатой и зажатой кнопки на клавиатуре. Желательно кинуть ссылку на материал.

Всем добра =)
GameMixДата: Среда, 25 Сентября 2013, 18:25 | Сообщение # 2
старожил
Сейчас нет на сайте
Код
#include <windows.h>
#include <iostream.h>
int main()
{
while (true)
if (GetKeyState('1') & 0x80) // нажата клавиша 1.
     {
     cout << "KeyPress";
     return 0;
     }
return 0;
}

Остальные коды клавиш можно посмотреть в winuser.h.


Steel Standoff - 2D аркада.
Мои статьи
TheAceДата: Среда, 25 Сентября 2013, 19:54 | Сообщение # 3
Pain is Pleasure
Сейчас нет на сайте
GameMix, гм... бесконечный цикл?
И почему мне не кажется, что это сильно умная идея?


The End [3D][TPS]
MrNeshДата: Среда, 25 Сентября 2013, 20:06 | Сообщение # 4
Воин добра и света
Сейчас нет на сайте
Цитата
Мгновенный отклик от клавиатуры

Если бы sad


avolkoffДата: Среда, 25 Сентября 2013, 20:23 | Сообщение # 5
частый гость
Сейчас нет на сайте
Ставишь приоритет процесса на реального времени, делаешь цикл в потоке и только сканируешь клаву... И завершения обработки события не ждешь при нажатии wink
MrNeshДата: Среда, 25 Сентября 2013, 20:24 | Сообщение # 6
Воин добра и света
Сейчас нет на сайте
У тебя есть цикл игры
Вынеси проверку в куданить и дергай её в начале
Сохрани результат ещё
Цитата (GameMix)
if (GetKeyState('1') & 0x80) // нажата клавиша 1.
{
...
}

Вот как я понял это что-то рабочее
Просто продолжи else if'ом




Сообщение отредактировал jiumx60rus - Среда, 25 Сентября 2013, 20:25
GameMixДата: Среда, 25 Сентября 2013, 20:27 | Сообщение # 7
старожил
Сейчас нет на сайте
Цитата (TheAce)
GameMix, гм... бесконечный цикл?
И почему мне не кажется, что это сильно умная идея?

Наверное, потому что ты слишком умный, в отличие от меня. Удиви меня, нуба, покажи лучший вариант для простой демонстрации работы GetKeyState() smile


Steel Standoff - 2D аркада.
Мои статьи
avolkoffДата: Среда, 25 Сентября 2013, 21:23 | Сообщение # 8
частый гость
Сейчас нет на сайте
Цитата (Drac)
Подскажите, как осуществить действие по нажатой и зажатой кнопки на клавиатуре.

Как вариант, может считывать состояние клавы в "массив состояний", при нажатии на клавишу регистрировать, что она была нажата, в другом массиве, при отжатии снимать "регистрацию". Ну и соответственно делать функцию типа Work(), которая этим будет заниматься. Вторая функция это проверка нажата ли она, третья зажата, четвертая отжата. smile Всего: массив состояний, массив состояний для зажатых клавиш (bool), 4 функции. Велосипедом попахивает наверно smile


Сообщение отредактировал avolkoff - Среда, 25 Сентября 2013, 21:25
AsteroidДата: Четверг, 26 Сентября 2013, 09:02 | Сообщение # 9
Blender updated
Сейчас нет на сайте
Цитата (Drac)
как осуществить действие по нажатой и зажатой кнопки

а какое действие надо ? перемещение курсора ? или нажатие клавиш ?

1 функция ()
{
2 функция ()
например leftPressed
}

Может так как то ?


Сообщение отредактировал Asteroid - Четверг, 26 Сентября 2013, 09:08
IzaronДата: Четверг, 26 Сентября 2013, 14:01 | Сообщение # 10
Rammstein forever
Сейчас нет на сайте
Цитата (jiumx60rus)
Вот как я понял это что-то рабочее Просто продолжи else if'ом

Што? Можно же просто прогнать все коды клавиш от 0 до 255
DracДата: Суббота, 28 Сентября 2013, 23:38 | Сообщение # 11
частый гость
Сейчас нет на сайте
В общем, спасибо за ответ, плюс как и было обещано я поставил. Однако, я просил кинуть ссылку на материал, что-бы рассмотреть все со всех сторон как говорится. Пока-же я использую функцию _getch(); и бесконечный цикл.

Собственно за ссылку на хороший материал конечно же плюсану. :) Сам бы нашел, сижу с телефона. Трафик...


Всем добра =)
MrNeshДата: Воскресенье, 29 Сентября 2013, 00:16 | Сообщение # 12
Воин добра и света
Сейчас нет на сайте
Izaron, зачем...используется только штуки 4-5

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг