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/ |