记一次尝试用脚本模拟手柄打游戏(一)
最近打游戲累了
想自動化打游戲
最開始是打算模擬鍵鼠方案的,但是吧,很快就遇到了問題。
對于常規的窗口來講,ctypes庫足以模擬鍵鼠輸入了
但是進到第三人稱視角的游戲里面吧,鍵盤模擬還好說,鼠標移動他視角不動啊
這就很令人頭疼了。
我又檢測了一下鼠標的位置,發現鼠標的坐標其實一直鎖定在窗口的正中心。
也就是說游戲檢測鼠標移動來調整視角是不能通過腳本讓鼠標向某個坐標移動來實現的。
可能可以從更底層的驅動來模擬鼠標運動進而實現這個操作,但是我決定何不用一個更簡單的方法——模擬手柄。
自動化手柄操作
vjoy
網上搜了一下,第一個考慮用的vjoy
python需要用的庫是pyvjoy
當然還需要搭配一個測試工具來看我設置手柄對不對
測試工具
運行后發現
Unable to load vJoy SDK DLL. Ensure that vJoyInterface.dll is present回去看github頁面發現
Currently vJoyInterface.dll is looked for inside the pyvjoy directory only so place the desired version of that file there to use. (Note: this library currently only works with the x86 dll!)
也就是說需要把dll放在pyvjoy的目錄下,注意是pyvjoy的目錄下,不是新寫的代碼的目錄下。
此時再運行剛才的代碼,可以在測試工具中看到搖桿的移動
進入一下debug模式,讓他停在這里
打開steam的控制器頁面可以看到已經檢測到了vjoy手柄
通過set_axis可以讓steam把搖桿識別出來。看來問題不大
但是啊,這個時候我就又遇到問題了,那就是vjoy這玩意他只有一個搖桿啊,我要設置右搖桿怎么辦呢?
嗚。。。
好像還是有解決辦法,但是秉著不要重復造輪子的思想,畢竟時間有限每天還要正經工作還要打游戲,于是我又去找有沒有什么直接模擬XBOX360或者XBOX ones手柄的方法,反正你得給我來個XINPUT對吧。
然后我就發現了一個東西,vgamepad
vgamepad
vgamepad是用來模擬XBox360 gamepad的,說明文檔也比長久不更新的pyvjoy詳細很多。
當然了,這個東西只支持windows。
如果你和我一樣嘗試在mac上通過pip安裝,就會出現下面的情況。
windows就好說了,安裝好然后重啟。(他會自動給你安裝viGem的,然后要求你重啟)
我們打開一個xbox控制器測試軟件來試試看。
最開始是沒插手柄的,然后我們創建一個手柄
腳本結束后這個設備會被拔出,然后就檢測不到手柄了。
目前看來這個手柄的方案應該能用。
總結
以上是生活随笔為你收集整理的记一次尝试用脚本模拟手柄打游戏(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于微信平台的“快递超市”设计
- 下一篇: 武汉大学计算机应用技术考研经验分享,计算