我一直在使用XNA Mouse類和我已經能夠讓鼠標移動每幀鼠標重置每次屏幕中心的唯一途徑然後在將其置回中心之前測量位移。這看起來很糟糕,而且我的鼠標支持5700dpi的分辨率,當xna爲屏幕位置返回一個整數時,我大多肯定沒有獲得這個分辨率。獲取原始鼠標移動(不是屏幕上的位置)
1
A
回答
1
如果使用Mouse.SetPosition
和測量偏移不爲你工作,你需要使用比其他XNA的API。
要使用的API是WM_INPUT
。這是您可以通過掛鉤消息循環接收的消息。 (注:XNA的API相當於WM_MOUSEMOVE
,所以不要使用)
This MSDN page有關於API選擇一些介紹細節,並且有一些示例代碼(C++),將其用於鼠標輸入。
如果你不熟悉Windows的消息循環,也許就Wikipedia啓動。它基本上是一個本地(C/C++)API,所以你必須做一些工作才能在C#中使用它。
我沒有任何代碼方便我自己做,但here is a link有人掛鉤的消息循環,以便他們可以處理WM_CHAR
,這也許是一個很好的起點。
0
我最近從MouseMove事件畸形交換掉自己,發現這是很有幫助的。然而,看起來SharpDX已經將其大部分包裝在RawInput模塊中,所以這對我來說已經足夠好了。除此之外,可以通過重寫WndProc來掛鉤Windows.System.Forms的消息循環; WM_INPUT是消息ID 0x00FF;在.NET中聲明工會很棘手,需要[StructLayout]屬性。
相關問題
- 1. C#如何獲取屏幕上特定點的座標。 (不是鼠標位置)
- 2. 在屏幕上移動鼠標光標
- 3. 檢查屏幕上的鼠標位置
- 4. 屏幕上的鼠標位置
- 5. 鼠標在屏幕上的Java位置
- 6. 如何在WPF屏幕上獲取鼠標位置?
- 7. 當框架在屏幕上移動時,鼠標不保持它的位置
- 8. Qt 5,獲得鼠標在屏幕上的位置
- 9. 如何在Qt屏幕上獲得鼠標位置?
- 10. 如何拖動屏幕上的按鈕並將翻譯動畫從當前位置移動到原始位置?
- 11. SlidingDrawer移動到原始屏幕
- 12. iPhone4上的初始屏幕移位
- 13. 獲取鼠標屏幕座標點擊
- 14. 將鼠標轉換爲屏幕位置
- 15. 在Android上獲取主屏幕位置
- 16. 在主屏幕上獲取appwidget位置?
- 17. 在屏幕上獲取按鈕位置
- 18. 如何通過鼠標移動事件獲取攝像頭位置並轉換爲three.js中的屏幕座標?
- 19. 試圖在屏幕上打印出鼠標x和y位置 - 獲取0,0
- 20. 獲取鼠標與鼠標移動的座標上的路線
- 21. OSX/Cocoa:獲取屏幕上的Dockless圖標的絕對位置
- 22. 在flex中的屏幕上的鼠標位置
- 23. 在鼠標移動中獲取控件的位置
- 24. 在window.resize上獲取鼠標位置
- 25. 在Flex Panel上獲取鼠標位置
- 26. OpenGl獲取鼠標位置
- 27. 獲取鼠標位置
- 28. onMouseMove獲取鼠標位置
- 29. 使用Java檢測鼠標在屏幕上的任意位置
- 30. SharpDX如何讓鼠標在遊戲屏幕上的位置
可能重複? http://stackoverflow.com/questions/2150448/vb-net-mouse-coordinates – Rob
不,這正是我不想要什麼? –