2011-01-10 4 views
9

Я пытаюсь собрать игру для Mac OS X, которая включает в себя множество быстрых действий и бросание курсора мыши. Если пользователь хочет играть в оконном режиме, мне бы очень хотелось заблокировать курсор внутри окна, чтобы избежать случайного изменения программ в разгаре битвы (очевидно, это отменит себя, если пользователь изменяет программы или удары бежит для в меню паузы.)Как заблокировать курсор внутри окна Mac OS X?

В Windows это можно сделать легко с помощью ClipCursor(). Я не могу найти эквивалент в Mac OS X. Есть ли он?

+0

См очень похожий вопрос [SO 4642867] (http://stackoverflow.com/questions/4642867/how-can-i-lock-the-cursor-to-the-inside-of- a-window-on-linux), задавая тот же вопрос для Linux. –

ответ

7

Посмотрите на CGWarpMouseCursorPosition, CGAssociateMouseAndMouseCursorPosition и CGGetLastMouseDelta (входит в состав ApplicationServices).

См http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html

+0

Хотя это выглядит действительно, действительно многообещающе, у меня возникают некоторые ужасные проблемы с частотой обновления курсора. SetMouseCoalescingEnabled бесполезен. Я буду работать над этим больше, и если я выясню, что происходит, я опубликую, но на данный момент я не могу придумать ничего полезного с этими функциями. – ZorbaTHut

+0

Вы когда-нибудь это понимали? Теперь у вас такая же проблема, играя в оконном режиме на Mac. – jtanman