2011-01-10 9 views
9

Sto provando a mettere insieme un gioco per Mac OS X che richiede molte azioni rapide e lo spostamento del cursore del mouse. Se l'utente vuole giocare in modalità finestra, vorrei proprio bloccare il cursore all'interno della finestra per evitare di cambiare accidentalmente i programmi nel calore della battaglia (ovviamente questo si cancellerà da solo se l'utente cambia programma o colpisce la fuga per menu di pausa.)Come posso bloccare il cursore all'interno di una finestra su Mac OS X?

Su Windows, questo può essere eseguito facilmente con ClipCursor(). Non riesco a trovare un equivalente su Mac OS X. Ce n'è uno?

+0

Vedi domanda molto simile [SO 4.642.867] (http://stackoverflow.com/questions/4642867/how-can-i-lock-the-cursor-to-the-inside-of- a-window-on-linux) ponendo la stessa domanda per Linux. –

risposta

7

Dai un'occhiata a CGWarpMouseCursorPosition, CGAssociateMouseAndMouseCursorPosition e CGGetLastMouseDelta (parte di ApplicationServices).

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

+0

Mentre questo sembra davvero, davvero promettente, sto avendo alcuni problemi di frequenza di aggiornamento del cursore orribile. SetMouseCoalescingEnabled non è stato utile. Ci lavorerò di più su questo, e se capisco cosa sta succedendo, posterò, ma al momento non riesco a trovare nulla di utile con queste funzioni. – ZorbaTHut

+0

Lo hai mai capito? Avere lo stesso problema ora durante la riproduzione di giochi in modalità finestra su Mac. – jtanman