PMG

Форумы по созданию игр
Текущее время: 29 мар 2024 10:28

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Ввод с клавиатуры и мыши
СообщениеДобавлено: 24 мар 2006 12:15 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Хочу разобраться как обеспечить ввод с клавиатуры и мыши с большей скоростью. Все предлагают DirectInput. В нем можно получить данные о клавиатуре так:

LPDIRECTINPUTDEVICE8 DxKeyboard;
DxKeyboard->GetDeviceState(256, (LPVOID)KeyState);


И дальше обрабатывать через цикл. Данные о мышке:

LPDIRECTINPUTDEVICE8 DxMouse;
DxMouse->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), &Data, &Range, 0);


Всю остальную инициализацию я пропустил.
Но ведь в Win32 данные можно получить почти таким же способом:

BOOL GetKeyboardState (PBYTE lpKeyState);
для клавиатуры и
BOOL GetCursorPos (LPPOINT lpPoint);
SHORT GetAsyncKeyState (int vKey);

для мышки.

Еще в Win32 есть всем известные мессаги.
Что выбрать? Про то, что DirectInput поддерживает еще много всяких джойстиков, рулей и т.д. я знаю. Мне нужно только клава и мышь.
PS Может быть есть альтернатива, библиотечка какая-нибудь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 мар 2006 15:28 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Я думаю библиотечки наверняка есть, но все равно данные получают либо через Win32 API или DInput. Как-то по другом я не знаю. Может перехватывать прерывания на уровне драйверов?!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 мар 2006 19:28 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 13 ноя 2004 13:09
Сообщения: 113
Зачем либы? Оно и так все очень просто. Можеш посмотреть в книге "Core Game Programming Techniques & Algorithms", там все очень хорошо описано.

З.Ы. Наиболее быстро через DirectInput и асинхронные вызовы Win32 API.

_________________
"I just don't give a f..." Eminem


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 мар 2006 23:41 
Не в сети
Любитель

Зарегистрирован: 12 янв 2006 11:05
Сообщения: 21
Цитата:
Можеш посмотреть в книге "Core Game Programming Techniques & Algorithms", там все очень хорошо описано.

Скачал. Книга конечно хорошая, но на английском. С английским у меня проблемы. Может есть что на русском.
Цитата:
Может перехватывать прерывания на уровне драйверов?!

Это конечно можно. Только я вот про прерывания мало чего знаю. Предется копаться с asm'ом. Что-то не хочется.

Если кто узнает альтернативу DInput и Win32 plzz напишите. Я бы хотел чтобы ввод не зависел от платформы, что-то типа
GLUT:
glutKeyboardFunc();
glutMouseFunc();

Только glut больше подходит для демо-прог, а не для игр.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 мар 2006 08:52 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Можно написать свою либу в которой будет инкапсулироваться код зависящий от системы.

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


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

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


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

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


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

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