Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > DirectInput обработка событий


Автор: PRF 27.7.2009, 14:58
Здравствуйте. У меня вопрос скорее всего не к практической реализации кода, а как этот код расформировать в проекте. 
Ситуация такая. 
Всю инициализацию DirectInput (само устройство, клавиатуру , мышь) я поместил в отдельный класс cDI. Мне надо реализовать движение, т.е по нажатию, допустим стрелки, наблюдатель двигался вперед, т.е когда я получаю от клавиатуры стрелку у меня все координаты сцены должны пересчитаться. Так вот. Сама функция обработки нажатой клавиши по идеи можно запихать в класс cDI, но мне не хочется делать в этом классе пересчет координат объекта (ну когда допустим нажал стреклу и дальше какое то действие, вот это действие не хочется реализовывать в классе cDI). Просто класс создан для работы с DirectInput, а не для пересчета координат сцены, некрасиво получается. 

Такое предложение: Просто функцию в классе сделать, которая бы возвращала клавишу, ну только возвращала, а обрабатывать ее допустим в WinMain . Ну или в функции которая вызывается из winmain, ведь функция

Код

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
}

отвечает за обработку событий приложения , ну окна, а не directx, там т.е обработку делать нельзя,? я так понимаю

Теперь вопрос: как мне распределить этот код обработки и пересчета координат?  не хотелось бы делать пересчет координат делать в классе который отвечает совсем за другое. 
Спасибо.

Автор: BorisVorontsov 6.8.2009, 14:06
Нашел проблему smile Да просто добавь обработчики событий в свой класс.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)