我有一個方向盤遊戲控制器。現在我想寫一個像NFS-17這樣的比賽遊戲的驅動程序。我知道遊戲使用Xinput.I將用C寫驅動程序。 我的問題: 1)當我轉動方向盤時如何發送消息給遊戲。 2)它是否使用SendMessage()。 3)如果使用SendMessage(),如何獲取遊戲窗口的句柄以及我應該發送哪個wParam和lParam。發送遊戲控制器消息到一個比賽遊戲使用Xinput
回答
XInput用於xbox360控制器。對於方向盤X軸,您可以使用遊戲手柄的兩個觸發器。 XInput僅僅是一個getter/setter:P它讓你瞭解連接的控制器的狀態,並且報告在你的請求中是否連接了某些東西,它不監視或保存任何地方的任何東西,也不發送消息給應用程序有輸入焦點。發送消息是您可以構建應用程序的工作。 現在,到你真正需要的東西。您可以編寫一個簡單的C++應用程序來掃描控制器的狀態,但請等待......您沒有xbox360控制器:P因此,請先測試您的應用程序如何使用其oem驅動程序響應您的方向盤。如果你不能讀取它連接到任何USB端口(檢查MSDN的GetInputState()),然後嘗試使用Windows通用驅動程序(讓它安裝任何適合它,它甚至可能感知您的方向盤作爲一個Xbox360他們是非常類似於一個點,不同之處在於具有更昂貴車輪的軸和按鈕的數量)。 然後,當您實際讀取控制器(方向盤)的狀態時,使用GetHDC(窗口句柄),其中窗口句柄通過(我不記得肯定)檢索FindWindow(窗口的名稱/標題)。使用alt-tab檢查鼠標懸停在遊戲窗口中使用的任何標題。 當您擁有窗口句柄和設備上下文時,您可以通過窗口句柄發送消息給其回調函數WndProc函數,甚至通過設備上下文顯示文本/繪製圖像/形狀。這些消息應該是相應的虛擬鍵代碼(例如向上箭頭的VK_UP ...查看它),如果沒有可用的輪子,這些代碼將被推入鍵盤。訣竅是模擬每個車輪旋轉角度的PWM。只需發送一個交替推/放VK_LEFT鑰匙代碼的高頻消息,讓車輪高度轉向左側,並且轉向鎖只需發送一條KEY_DOWN消息,直至取消轉向鎖,然後發出KEY_UP消息,然後是相應的再次發生變化的頻率。對於輪子的低度,在按鍵/釋放按鍵之間做出更大的暫停。 製作驅動程序的好處是您可以根據自己的喜好調整靈敏度,按鈕相關性,死區。
另一方面,已經有這樣的模擬器,然後你可以使用一個USB通信API(從USB端口讀取/寫入數據,沒有什麼奇怪的東西:)用6 + 1 transmision構建自己的方向盤。 ),微控制器(PIC,atmega,nxp等,無論哪種產品更便宜,硬件USB準備就緒或加上USB控制器),X,Y等軸的可變電阻以及驅動系統的一些部件。祝你好運,並在YouTube上發佈:P!
P.S.地獄現在已經太晚了,但是,嘿......我覺得我需要寫一些我從未做過的曼波 - 詹姆,但是如果我不是那麼懶惰的話,那就行得通了。 :)
更新:xInput可能工作,如果兼容(可能是高端車輪和快樂),但directx也知道方向盤,所有這些。對我而言,這是唯一的解決方案。微軟表示XInput和directX都應該被用作XINput提供音頻和更多東西來兼容產品。 該algorythm是健全的,雖然開放許多實現。我爲GTA SA成功實現了它,因爲專用工具不支持我的版本。現在我的踏板上有了Acc和Brake,最後:)我使用了一個定時器來達到一定的頻率(自己選擇的,經驗豐富的東西),並將脈衝寬度從0s調整到了全週期(輕觸踏板並持續將踏板用於金屬)。每發送一個脈衝,我都會發送兩條消息:在脈衝開始時按下W/S鍵,並在計算出的脈衝寬度達到其最終值時按下W/S鍵。脈衝寬度的公式是總寬度的百分比,相同的百分比,或者通過靈敏度設置進行修改,例如踏板從最大行程距離行進(DirectInput報告[-1000,1000]的整數[我認爲]。[-fullbrake ,fullacceleration])。
- 1. 演示遊戲賽車遊戲crashs(GamerServicesNotAvailableException)
- 2. 更改遊戲中的遊戲控制
- 3. 使用Python發送聊天消息到局域網遊戲
- 4. 遊戲控制器的WinAPI
- 5. 編程遊戲控制器
- 6. Visual Studio遊戲控制器
- 7. 欺騙遊戲控制器
- 8. AS3賽車遊戲?
- 9. 發送無需使用遊戲中心的遊戲邀請
- 10. Playn比遊戲
- 11. 如何編寫遊戲控制器遊戲杆?
- 12. 遊戲場景到視圖控制器
- 13. javascript內存/比賽2遊戲
- 14. 在比賽遊戲中加電
- 15. 比賽三益智遊戲算法
- 16. 3D比賽遊戲碰撞檢測
- 17. 存儲一個Facebook用戶的遊戲數據遊戲製作
- 18. 開發一款不使用遊戲引擎的簡單遊戲?
- 19. 統一谷歌玩遊戲實時消息不發送
- 20. 發送iOS遊戲信號
- 21. 井字遊戲java繪製遊戲
- 22. 回合制遊戲的遊戲循環
- 23. 使用遊戲工具包發送圖像到另一個iphone
- 24. RTS HTML5遊戲多人遊戲 - 開始node.js服務器遊戲
- 25. iPhone賽車遊戲中cocos3d
- 26. 開源cocos2d賽車遊戲
- 27. 遊戲循環控制
- 28. iphone遊戲控制幫助
- 29. 安卓遊戲控制
- 30. iPhone平臺遊戲。控制?