Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка клавиатуры GLUT 
:(
    Опции темы
AnLun
Дата 23.11.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



По обработке клавиатуры в GLUT я нашел 2 функции:
Код

(1) void glutKeyboardFunc(void (*func) (unsigned char key, int x, int y)); 

(2) void glutSpecialFunc(void (*func) (int key, int x, int y)); 


Можно ли каким-то способом обрабатывать коды клавиш (т.к. (2) обрабатывает только определенный набор клавиш, а (1) символы)?
Т.е. не зависимо от выбранной раскладки обрабатывать, к примеру, клавишу 'A' (не описывая 'a', 'Ф', 'ф' итд).

При этом надо, чтобы обрабатывалось несколько одновременных нажатий. 'W' и 'A' к примеру.
PM MAIL   Вверх
sgi1981
Дата 25.11.2008, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 16.3.2006

Репутация: нет
Всего: 10



Какую среду программирования используешь ?


--------------------
Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства.
PM MAIL   Вверх
AnLun
Дата 25.11.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



CodeBlocks
PM MAIL   Вверх
Gongex
Дата 15.2.2009, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



Код

GLvoid Controls(GLvoid)
{

if(GetAsyncKeyState(VK_UP)) //нажата стрелка "вверх"?
  {
  
  }
if(GetAsyncKeyState(VK_DOWN)) //нажата стрелка "вниз"?
  {
  
  }
if(GetAsyncKeyState(VK_RIGHT)) //нажата стрелка "вправо"?
  {
  
  }
if(GetAsyncKeyState(VK_LEFT)) //нажата стрелка "влево"?
  {
 

  }
}


и потом вызываешь её 

                                                                TranslateMessage(&msg);                
                DispatchMessage(&msg);                
            }
        }
        else                                        
        {
             DrawGLScene()
            if (active)                                
            {
                if (keys[VK_ESCAPE])                
                {
                    done=TRUE;                        
                }
                else                                
                {
                    DrawGLScene();    
                    Controls(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



M
Alexeis
Модератор: используйте подсветку кода

PM MAIL   Вверх
AnLun
Дата 18.3.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



Спасибо, наконец ответили, даже не заметил до сего дня smile 
Сразу несколько вопросов:
1)GetAsyncKeyState - на сколько понимаю не glut'овская функция. Она из какой библиотеки?(просто мне нужно именно средствами glut, т.к. проект кроссплатформенный)
2)А как обрабатывать буквы? GetAsyncKeyState('X')?
PM MAIL   Вверх
KaraKum
Дата 19.3.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: нет
Всего: 1



Используя GLUT ничего серьёзного не напишешь - эта библиотека в основном создана для быстрых и простых примеров OpenGL. Например толком нельзя отловить момент отпускания нажатой клавиши - иногда это вообще не нужно, а иногда критично.
Используй SDL - кроссплатформенная  smile .
PM MAIL WWW   Вверх
AnLun
Дата 22.3.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



Мне нужен OpenGL
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0772 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.