PMG

Форумы по созданию игр
Текущее время: 08 дек 2021 20:23

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Управление с клавиц в Glut
СообщениеДобавлено: 02 апр 2010 14:57 
Не в сети
Любитель

Зарегистрирован: 25 мар 2010 18:39
Сообщения: 17
Продолжение ранее заданного мной вопроса (создан в новой теме т.к. данный раздел более соответствует тематике чем предыдущий).
Пробовал задать движение "объекта" с помощью функции 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 );


_________________
Я именно тот чайник с кривым носиком, и вероятнее всего ручками тоже.


Последний раз редактировалось TAPAKAHATOP 06 апр 2010 13:12, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление с клавиц в Glut
СообщениеДобавлено: 03 апр 2010 15:21 
Не в сети
Гуру
Аватара пользователя

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

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

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

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление с клавиц в Glut
СообщениеДобавлено: 03 апр 2010 23:18 
Не в сети
Любитель

Зарегистрирован: 25 мар 2010 18:39
Сообщения: 17
А что за уроки? можно ссылочку, а то все про них читаю на этом форуме, а знать что это так и не знаю

_________________
Я именно тот чайник с кривым носиком, и вероятнее всего ручками тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление с клавиц в Glut
СообщениеДобавлено: 03 апр 2010 23:19 
Не в сети
Любитель

Зарегистрирован: 25 мар 2010 18:39
Сообщения: 17
звиняюсь, нашёл

_________________
Я именно тот чайник с кривым носиком, и вероятнее всего ручками тоже.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB