В настоящее время я создаю 2D-игру, используя C ++ и OpenGL. Мне было интересно, может ли кто-нибудь объяснить лучший способ изменить текущий курсор с помощью значка мыши. Я создаю игру со стрельбой сверху вниз и поэтому хочу, чтобы вместо этого курсор отображался в виде перекрестия.
Вы можете использовать свою специфичную для ОС функцию для ручного изменения значка указателя мыши (и «горячей точки» этого значка), или вы можете использовать специфичные для ОС функции для скрытия указателя мыши и ручного рисования собственного изображения с помощью последнее событие перемещения мыши, которое получило ваше приложение.
В качестве альтернативы, вместо использования специфичных для ОС функций, вы можете использовать кроссплатформенный API, который включает в себя такие функции (SDL, SFML, Qt и многие другие).
OpenGL не имеет никаких функций, которые конкретно работают с указателями мыши — это было бы интерфейсом оконного API, а не 3D-графикой. OpenGL только занимается рисованием графики.
Если вы используете GLUT (который не является «OpenGL», а является дополнительной библиотекой), вы можете вызвать:
glutSetCursor(GLUT_CURSOR_NONE);
Других решений пока нет …