Я разрабатываю игру в Cocoa
и хочу поворачивать камеру, когда пользователь перемещает мышь, а экран ограничивает движение камеры. Я скрыл курсор мыши, но хочу слушать, когда движется физическая мышь, а не когда движется курсор мыши. Я слышал о IOKit
, но это слишком низкий уровень. Если это какой-то высокоуровневый способ сделать это, то как? И еще, как мне использовать IOKit
.
Cocoa прослушивает события перемещения мыши, когда движется мышь, а не курсор
Ответы (1)
Когда вы скроете курсор, вызовите CGAssociateMouseAndMouseCursorPosition(FALSE)
. Это сделает так, чтобы движение мыши не перемещало курсор.
Вы будете продолжать получать события NSEventTypeMouseMoved
, NSEventTypeLeftMouseDragged
, NSEventTypeRightMouseDragged
и NSEventTypeOtherMouseDragged
при перемещении мыши (в зависимости от того, были ли нажаты кнопки во время перемещения). Поскольку курсор не движется, locationInWindow
не будет иметь смысла. Он будет продолжать сообщать о последнем местоположении, когда вы отсоединили курсор от мыши. Однако свойства deltaX
и deltaY
будут указывать, как далеко и в каком направлении переместилась мышь.
person
Ken Thomases
schedule
03.05.2017