2011-01-10 17 views
9

Próbuję stworzyć grę dla systemu Mac OS X, która wymaga dużej szybkości działania i rzucania kursorem myszy. Jeśli użytkownik chce grać w trybie okienkowym, chciałbym zablokować kursor wewnątrz okna, aby uniknąć przypadkowej zmiany programów w trakcie bitwy (oczywiście spowoduje to anulowanie, jeśli użytkownik zmieni programy lub uderzy w menu pauzy.)Jak zablokować kursor wewnątrz okna w systemie Mac OS X?

W systemie Windows można to łatwo uzyskać za pomocą ClipCursor(). Nie mogę znaleźć odpowiednika na Mac OS X. Czy istnieje?

+0

Patrz bardzo podobne pytanie [SO 4642867] (http://stackoverflow.com/questions/4642867/how-can-i-lock-the-cursor-to-the-inside-of- a-window-on-linux) zadając to samo pytanie w systemie Linux. –

Odpowiedz

7

Zobacz CGWarpMouseCursorPosition, CGAssociateMouseAndMouseCursorPosition i CGGetLastMouseDelta (część ApplicationServices).

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

+0

Podczas gdy wygląda to naprawdę obiecująco, mam straszne problemy z odświeżaniem kursora. SetMouseCoalescingEnabled nie był pomocny. Będę pracował nad tym więcej, a jeśli się zorientuję, co się dzieje, opublikuję, ale w tej chwili nie mogę wymyślić niczego użytecznego z tymi funkcjami. – ZorbaTHut

+0

Czy kiedykolwiek to rozgryzłeś? Mając ten sam problem teraz podczas grania w gry w trybie okienkowym na mac. – jtanman

Powiązane problemy