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