PMG
https://forum.pmg.org.ru/

Управление с клавиц в Glut
https://forum.pmg.org.ru/viewtopic.php?f=1&t=7955
Страница 1 из 1

Автор:  TAPAKAHATOP [ 02 апр 2010 14:57 ]
Заголовок сообщения:  Управление с клавиц в Glut

Продолжение ранее заданного мной вопроса (создан в новой теме т.к. данный раздел более соответствует тематике чем предыдущий).
Пробовал задать движение "объекта" с помощью функции glut'a :
glutSpecialFunc(NameFunc);
Но столкнулся с проблемой что движение получается несколько рваным и не равномерным. Выражается это в следующем:
При зажатии кнопки "Вперед", "Объект" производит 1 "шаг" и зависает на пол секунды, после чего уже начинают обрабатываться повторы функции "вперед"(как повтор символа в ворде или ещё где).
Посмотрев по буржуйским сайтам нашёл подобие ответа на мой вопрос как этого избежать, функции:
glutKeyboardFunc(NameFunc);
glutKeyboardUpFunc(NameFunc);
Как я понял (мои скудные знания буржуйского), они позволяют использовать систему, так сказать, "флагов" для клавиш.
Есть у кого опыт использования подобных функций? Не могли бы подробнее, и по русски привести простой урок на примере какой нибудь клавиши, и разжевать для чайника?

Возможно кому нибудь пригодится:
Код:
int KeyDown[256];

void UserInput(){
   if(KeyDown['d']==1){
      //Тутава ваш код
      }
   if(KeyDown['a']==1){
      //Тутава ваш код
      }
   }
void keyboard(unsigned char key, int xmouse, int ymouse){
   KeyDown[key] = 1;
}
void keyboardUp(unsigned char key, int xmouse, int ymouse){
   KeyDown[key] = 0;
   }


В маин добавить:
Код:
....
   glutKeyboardFunc(keyboard);
   glutKeyboardUpFunc( keyboardUp );


Автор:  MagicWolf [ 03 апр 2010 15:21 ]
Заголовок сообщения:  Re: Управление с клавиц в Glut

Не для glut, но похожее. http://pmg.org.ru/nehe/nehe01.htm после слов "Если произошло нажатие кнопки (на клавиатуре) мы можем узнать какая клавиша это была считав wParam."

Берешь массив байтов по размеру равный максимально возможному коду клавиши, если клавиша с кодом k нажата, то значит в массиве[k] выставляешь 1, иначе 0. А в том месте, где происходит обработка нажатий, уже в зависимости от значения массив[k] и выполняешь нужные действия.

Для уроков NeHe есть код для glut и Linux, смотри в конце первого урока на англ сайте.

Автор:  TAPAKAHATOP [ 03 апр 2010 23:18 ]
Заголовок сообщения:  Re: Управление с клавиц в Glut

А что за уроки? можно ссылочку, а то все про них читаю на этом форуме, а знать что это так и не знаю

Автор:  TAPAKAHATOP [ 03 апр 2010 23:19 ]
Заголовок сообщения:  Re: Управление с клавиц в Glut

звиняюсь, нашёл

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/