Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Управление мышкой в игре

305
03 октября 2003 года
Kashuk
385 / / 21.02.2003
Я делаю игру(пытаюсь), так вот вопрос:

Как можно управлять мышкой в игре, тоесть движение влево, вправо. Надеюсь Вы меня поняли.

Буду рад любому совету.
487
04 октября 2003 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by Kashuk
Я делаю игру(пытаюсь), так вот вопрос:

Как можно управлять мышкой в игре, тоесть движение влево, вправо. Надеюсь Вы меня поняли.

Буду рад любому совету.



Дык все очень просто!
Для этого нужно обрабатывать сообщения от мыши!

Если не секрет - ты что игру собрался писать через стандартное GDI?

Вообще-то я бы посоветовал воспользоваться для этих целей DirectX или OpenGL.

А у DirectX как раз есть библиотека DirectInput которая как-раз и занимается тем что сечет все события от устройств ввода - тобишь мауса, клавиатуры джойстиков и.т.п.

Причем, касаемо маус-девайса: DirectInput как раз возвращает СМЕЩЕНИЕ указателя мыши от последней позиции тобишь +- по вертикали и горизонтали - ну а дальше все просто и замечательно: к примеру смещение мыши по горизонтали равно +3 значит повернули персонаж в игре в право на определенное значение равное смещение*чувствительность мыши. - Значит повернем влево и.т.д.

Ну а ежели тебе все-таки нужны стандартные windows сообщения от клавы и мыши - то тогда WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE - хотя достаточно сильно будет тормозить все остальное - проверено на опыте.

Схавал WM_MOUSEMOVE - запомнил координаты. Словил новое сообщение - вычел из новых координат старые и получил соответсвенно относительное смещение опять-таки со знаками + и -. Ну а дальше все тоже самое!


А ежели не секрет - об чем игра будет? :D

305
04 октября 2003 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by ddnh_bc


Дык все очень просто!
Для этого нужно обрабатывать сообщения от мыши!

Если не секрет - ты что игру собрался писать через стандартное GDI?

Вообще-то я бы посоветовал воспользоваться для этих целей DirectX или OpenGL.

А у DirectX как раз есть библиотека DirectInput которая как-раз и занимается тем что сечет все события от устройств ввода - тобишь мауса, клавиатуры джойстиков и.т.п.

Причем, касаемо маус-девайса: DirectInput как раз возвращает СМЕЩЕНИЕ указателя мыши от последней позиции тобишь +- по вертикали и горизонтали - ну а дальше все просто и замечательно: к примеру смещение мыши по горизонтали равно +3 значит повернули персонаж в игре в право на определенное значение равное смещение*чувствительность мыши. - Значит повернем влево и.т.д.

Ну а ежели тебе все-таки нужны стандартные windows сообщения от клавы и мыши - то тогда WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE - хотя достаточно сильно будет тормозить все остальное - проверено на опыте.

Схавал WM_MOUSEMOVE - запомнил координаты. Словил новое сообщение - вычел из новых координат старые и получил соответсвенно относительное смещение опять-таки со знаками + и -. Ну а дальше все тоже самое!


А ежели не секрет - об чем игра будет? :D



Да, пробую писать игру (Quake 4 :-) ). Пишу на OpenGL. Если можно то немного подробнее опеши что необходимо зделать. Могу ли я DirectInput подкючить к своей проге...

487
04 октября 2003 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by Kashuk


Да, пробую писать игру (Quake 4 :-) ). Пишу на OpenGL. Если можно то немного подробнее опеши что необходимо зделать. Могу ли я DirectInput подкючить к своей проге...



Естественно можешь! Причем очень даже легко - когда сам писал игру именно так и делал. DirectInput вообще никак не влияет ни на Direct3D ни на OpenGL - так что не беспокойся за эти вещи. Для начала найди где-нибудь толковый хелповник по DirectX - усли не изменяет память - то таковой имелся вместе с DiectX SDK в мелко-мягком пакете Platform SDK для VC.

Там же есть и примеры для DirectInput. По моему, есть и в экзамплах для C++ Builder - но точно не помню.

305
06 октября 2003 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by ddnh_bc


Дык все очень просто!
Для этого нужно обрабатывать сообщения от мыши!

Если не секрет - ты что игру собрался писать через стандартное GDI?

Вообще-то я бы посоветовал воспользоваться для этих целей DirectX или OpenGL.

А у DirectX как раз есть библиотека DirectInput которая как-раз и занимается тем что сечет все события от устройств ввода - тобишь мауса, клавиатуры джойстиков и.т.п.

Причем, касаемо маус-девайса: DirectInput как раз возвращает СМЕЩЕНИЕ указателя мыши от последней позиции тобишь +- по вертикали и горизонтали - ну а дальше все просто и замечательно: к примеру смещение мыши по горизонтали равно +3 значит повернули персонаж в игре в право на определенное значение равное смещение*чувствительность мыши. - Значит повернем влево и.т.д.

Ну а ежели тебе все-таки нужны стандартные windows сообщения от клавы и мыши - то тогда WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE - хотя достаточно сильно будет тормозить все остальное - проверено на опыте.

Схавал WM_MOUSEMOVE - запомнил координаты. Словил новое сообщение - вычел из новых координат старые и получил соответсвенно относительное смещение опять-таки со знаками + и -. Ну а дальше все тоже самое!


А ежели не секрет - об чем игра будет? :D



Да, делаю игру (Quake 4 :-) ) На OpenGL. Если можно опиши более подробно что необходимо зделать, особенно интересно с DirectInput

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог