Управление мышкой в игре
Как можно управлять мышкой в игре, тоесть движение влево, вправо. Надеюсь Вы меня поняли.
Буду рад любому совету.
Я делаю игру(пытаюсь), так вот вопрос:
Как можно управлять мышкой в игре, тоесть движение влево, вправо. Надеюсь Вы меня поняли.
Буду рад любому совету.
Дык все очень просто!
Для этого нужно обрабатывать сообщения от мыши!
Если не секрет - ты что игру собрался писать через стандартное GDI?
Вообще-то я бы посоветовал воспользоваться для этих целей DirectX или OpenGL.
А у DirectX как раз есть библиотека DirectInput которая как-раз и занимается тем что сечет все события от устройств ввода - тобишь мауса, клавиатуры джойстиков и.т.п.
Причем, касаемо маус-девайса: DirectInput как раз возвращает СМЕЩЕНИЕ указателя мыши от последней позиции тобишь +- по вертикали и горизонтали - ну а дальше все просто и замечательно: к примеру смещение мыши по горизонтали равно +3 значит повернули персонаж в игре в право на определенное значение равное смещение*чувствительность мыши. - Значит повернем влево и.т.д.
Ну а ежели тебе все-таки нужны стандартные windows сообщения от клавы и мыши - то тогда WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE - хотя достаточно сильно будет тормозить все остальное - проверено на опыте.
Схавал WM_MOUSEMOVE - запомнил координаты. Словил новое сообщение - вычел из новых координат старые и получил соответсвенно относительное смещение опять-таки со знаками + и -. Ну а дальше все тоже самое!
А ежели не секрет - об чем игра будет? :D
Дык все очень просто!
Для этого нужно обрабатывать сообщения от мыши!
Если не секрет - ты что игру собрался писать через стандартное GDI?
Вообще-то я бы посоветовал воспользоваться для этих целей DirectX или OpenGL.
А у DirectX как раз есть библиотека DirectInput которая как-раз и занимается тем что сечет все события от устройств ввода - тобишь мауса, клавиатуры джойстиков и.т.п.
Причем, касаемо маус-девайса: DirectInput как раз возвращает СМЕЩЕНИЕ указателя мыши от последней позиции тобишь +- по вертикали и горизонтали - ну а дальше все просто и замечательно: к примеру смещение мыши по горизонтали равно +3 значит повернули персонаж в игре в право на определенное значение равное смещение*чувствительность мыши. - Значит повернем влево и.т.д.
Ну а ежели тебе все-таки нужны стандартные windows сообщения от клавы и мыши - то тогда WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE - хотя достаточно сильно будет тормозить все остальное - проверено на опыте.
Схавал WM_MOUSEMOVE - запомнил координаты. Словил новое сообщение - вычел из новых координат старые и получил соответсвенно относительное смещение опять-таки со знаками + и -. Ну а дальше все тоже самое!
А ежели не секрет - об чем игра будет? :D
Да, пробую писать игру (Quake 4 :-) ). Пишу на OpenGL. Если можно то немного подробнее опеши что необходимо зделать. Могу ли я DirectInput подкючить к своей проге...
Да, пробую писать игру (Quake 4 :-) ). Пишу на OpenGL. Если можно то немного подробнее опеши что необходимо зделать. Могу ли я DirectInput подкючить к своей проге...
Естественно можешь! Причем очень даже легко - когда сам писал игру именно так и делал. DirectInput вообще никак не влияет ни на Direct3D ни на OpenGL - так что не беспокойся за эти вещи. Для начала найди где-нибудь толковый хелповник по DirectX - усли не изменяет память - то таковой имелся вместе с DiectX SDK в мелко-мягком пакете Platform SDK для VC.
Там же есть и примеры для DirectInput. По моему, есть и в экзамплах для C++ Builder - но точно не помню.
Дык все очень просто!
Для этого нужно обрабатывать сообщения от мыши!
Если не секрет - ты что игру собрался писать через стандартное GDI?
Вообще-то я бы посоветовал воспользоваться для этих целей DirectX или OpenGL.
А у DirectX как раз есть библиотека DirectInput которая как-раз и занимается тем что сечет все события от устройств ввода - тобишь мауса, клавиатуры джойстиков и.т.п.
Причем, касаемо маус-девайса: DirectInput как раз возвращает СМЕЩЕНИЕ указателя мыши от последней позиции тобишь +- по вертикали и горизонтали - ну а дальше все просто и замечательно: к примеру смещение мыши по горизонтали равно +3 значит повернули персонаж в игре в право на определенное значение равное смещение*чувствительность мыши. - Значит повернем влево и.т.д.
Ну а ежели тебе все-таки нужны стандартные windows сообщения от клавы и мыши - то тогда WM_KEYDOWN, WM_KEYUP, WM_MOUSEMOVE - хотя достаточно сильно будет тормозить все остальное - проверено на опыте.
Схавал WM_MOUSEMOVE - запомнил координаты. Словил новое сообщение - вычел из новых координат старые и получил соответсвенно относительное смещение опять-таки со знаками + и -. Ну а дальше все тоже самое!
А ежели не секрет - об чем игра будет? :D
Да, делаю игру (Quake 4 :-) ) На OpenGL. Если можно опиши более подробно что необходимо зделать, особенно интересно с DirectInput