0
A
回答
1
這通常通過在Linux中將鼠標「翹曲」回到屏幕中心來實現。 Here是一個論壇主題,使用流行的SDL庫來做實際的鼠標讀取。
在Windows中,使用較低級別的輸入API(如XInput)進行調查。
1
執行此操作的一些代碼可能需要特定於平臺。例如,在Windows上,當用戶拖動鼠標時,通常會進行相機旋轉。您可以通過捕獲鼠標並在捕獲時回覆WM_MOUSEMOVE
消息來處理它。捕獲鼠標時,即使光標位置超出窗口邊界,您仍將繼續收到鼠標移動消息。
它看起來像放鬆已經覆蓋X很好,所以我不會在這裏重複。
+0
感謝您的額外細節:) – Ben 2010-05-18 15:01:27
3
使用glutWarpPointer在每次鼠標移動後都會將鼠標移回屏幕中間(這將在glutMotionFunc,glutPassiveMotionFunc中)。 使用glutsetcursor來更改或隱藏光標的外觀。
1
根據您使用的平臺和工具,您可以讓鼠標移動,然後計算距離,然後將其移回屏幕中央(或OpenGl窗口)。
int x,y;
GetMousePosition(&x,&y);
int deltaX = x-SCREEN_WIDTH/2;
int deltaY = y-SCREEN_WIDTH/2;
MoveMouse(SCREEN_WIDTH/2,SCREEN_HEIGHT/2);
這樣,您可以在保持鼠標位於同一位置的情況下輕鬆獲得鼠標移動,從而避免出現問題。請注意,GetMousePosition
和MoveMouse
是通用函數名稱,因爲這取決於您使用的操作系統和/或庫。
相關問題
- 1. 如何啓用擴展鼠標模式?
- 2. Raspbian窗口模式下的SDL2 OpenGL
- 3. 引導模式選擇下拉菜單擴展窗口
- 4. Firefox擴展:在下載窗口
- 5. 在鼠標下滾動窗口
- 6. 擴展接口模式
- 7. 在窗口中的鼠標模擬
- 8. Silverlight OOB窗口擴展航空玻璃
- 9. WPF擴展窗口
- 10. OpenGL擴展:如何在OS X下使用它們 - OpenGL新手
- 11. Chrome擴展使鼠標點擊擴展
- 12. 無功擴展滑動時間窗口
- 13. 在窗口之間模擬鼠標選擇消息
- 14. 如何模擬鼠標同時在多個窗口中移動?
- 15. 獲取鼠標下的窗口值
- 16. 鼠標按下並釋放窗口
- 17. 如何將瀏覽器窗口標識爲Firefox擴展中的彈出窗口?
- 18. 如何阻止鼠標退出窗口?
- 19. 在Bash擴展模式下逃跑@(..)
- 20. Mysql空間擴展
- 21. 窗口上的VLD擴展
- 22. 擴展 - Chrome原生窗口
- 23. 地址窗口擴展
- 24. 擴展kendo窗口breakbreak kendoWindow
- 25. WPF - 向左擴展窗口
- 26. 在Windows中的OpenGL霧座標擴展
- 27. 鼠標懸停/ DIV擴大非擴展鼠標移開時
- 28. 如何正確獲取鼠標下的窗口?
- 29. 如何以編程方式顯示Safari擴展彈出窗口
- 30. 如何保存單窗口/擴展多窗口的VS窗口布局?
乾杯隊友。這種明顯的解決方案。再次感謝。 – Ben 2010-05-18 15:01:49