當前位置:
首頁 > 科技 > 羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動

羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動


羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



距上一篇已經快一個月啦,原因有三~


一個是忙,寶寶更大了,已經習得連續滾翻天賦,沒辦法放床上或車上忽悠一會兒抽點時間出來了。


一個是懶,這個沒藥醫。

還有一個,就是LGS的滑鼠坐標相關函數的參數系統,亂得一逼。特別是在雙屏的情況下,基本每個函數的參數用法都不一樣



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



我花了點時間整理了一下幾個函數的參數規律,適用於多顯示器的朋友參考。


如果你跟我一樣使用多顯示器,使用滑鼠移動、定位的相關函數之前,請務必看完,否則會一頭霧水。


如果你只有單顯示器……呃,差不多可以直接看下一期了。



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動




GetMousePosition




羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動


首先我們來看僅有的、獲取滑鼠坐標的方式,GetMousePosition。


之所以要用這個函數,因為LGS里並非以屏幕像素坐標來作為參數,而是以0至65535為區間兩頭。


也就是說,假設你的滑鼠在屏幕右下角,以傳統的像素坐標系,它應該是x=1920,y=1080。但是在LSG的坐標系裡,它就是x=65535,y=65535。


並且,LGS的直接移動函數都是用的此等計算方法,所以如果你的取點和定位都用LGS來完成的話,或許還是離不開這個函數的。


或者,咱們可以用其他軟體取得像素坐標,然後通過數學換算的方式算得LGS的這個坐標系,也是可以的。



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



經過實戰,GetMousePosition這個函數以主顯示器左上角為原點(0,0),所以如果你的副顯示器在主顯左邊,則X軸就會變成負數。如果在右邊,則X軸會大於65535,以此類推。



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



MoveMouseTo




羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



這個函數非常坑爹,它只能在主顯示器範圍內移動。


我的主顯示器是靠右的寬屏,無法移動到靠左的帶魚。


因為,傳負數進去函數會直接報錯,而官方文檔也寫了,如果接入了多個顯示器請用其他函數代替。


所以,如果你只有單顯示器,用GetMousePosition和MoveMouseTo函數即可。


但是如果你接了多顯,那就蛋疼了……請往下看。



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



MoveMouseToVirtual




羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



根據官方文檔,這是唯一一個能在多顯示器狀態下,移動滑鼠到任意位置的函數。


但是經過實測,這個函數的參數規則,是以全桌面的最左上角為(0,0),說白了,和GetMousePosition函數是不一樣的。



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



也就是說,你用GetMousePosition函數辛辛苦苦抓取的坐標,在這個函數里是不能用的,必須要經過計算變換…………



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動


能幹出這種事情來,LGS的工程師也算是人才了。估計這倆函數不是同一個人寫的,又沒有一個統籌的產品經理,於是這幾個奇葩的函數就這麼誕生了。



MoveMouseRelative




羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



那麼,LGS非常「慈悲」的提供了另一個函數,以當前滑鼠坐標為原點,進行「相對移動」的函數。


但是奇葩的是,這個函數的坐標參數,使用的是像素,也就是屏幕像素,而非前面幾個函數的65535系統。


那麼毫無疑問了,這三個函數肯定是三個不同的程序員寫的,而且他們沒有一個產品經理……


而更更更更奇葩的是,這個函數的參數最多只能接受-127到128,也即一個位元組的0xFF。


如果你傳入了大於128的數字,則會溢出,129相當於-127,256相當於0,雖然不會報錯,但是絕對得不到想要的結果。

因為LUA都是要宿主導出函數的,如果宿主參數定義的時候,就只有一個位元組,那也就會變成這樣了。


--------------------------------------------------------------------------------------------------


說了那麼多,如果非要總結一下的話:


假如你是獨顯,或者多顯但腳本只用在主顯示器上,則問題不大,使用GetMousePosition函數獲取坐標之後,使用MoveMouseTo移動即可。


如果你的腳本有用在多顯器的非主顯示器上,則必須先使用GetMousePosition獲得一套坐標,經過算術變換,算得另一套坐標,再使用到MoveMouseToVirtual函數里。



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動


本期就先用MoveMouseRelative來做一下守望屁股的一鍵轉身,下期再整理一份多屏情況下通用的變換函數和應用腳本。


由於MoveMouseRelative函數一次最多只能移動128個像素,為了方便調試,結合實測之後,大概是每次10個像素,182次移動可以轉大概180度……這個參數根據每個人的解析度、遊戲、滑鼠狀況等都有可能不一樣,只能自行實測了。


代碼和羅技的參考文檔都放到度盤裡了,車牌號1bp3oOP5。

下一期:坐標變換與一鍵換裝



羅技遊戲軟體 LUA腳本編程 從入門到放棄 篇四:滑鼠定位與移動



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 什麼值得買 的精彩文章:

老司機的租車經歷 篇一:在德國#租車#的經歷
我的手機攝影 篇二:手機攝影小配件&小套路
浦發AE白&玩轉紅包
雷克薩斯ES200鈦銀精英版購車記錄

TAG:什麼值得買 |

您可能感興趣

MIUI開發版內置軟體批量移除腳本
SQL注入與XSS跨站腳本的基本原理
HERO引擎土城跑酷活動腳本
Ai轉PSD格式完美保留圖層腳本插件
REAPER 腳本實例:多功能滑鼠滾輪
雲服務商封殺 AI 客戶:因判定其 Python 腳本是惡意腳本
Python製作回合遊戲自動完成任務輔助腳本,進階篇
命令行運行Python腳本時傳入參數的三種方式
LINUX檢查一個進程內存增長的腳本
DNF增幅+19神王十字架誕生?疑似修改遊戲面板,官方實錘開掛腳本
從入門到上手寫腳本/爬數據/搭網站,有哪些快速學習Python的技巧
Shell 腳本編程陷阱
DHCP客戶端腳本代碼執行漏洞分析
TA系列:搭積木——人生腳本的構建
LOL:職業選手2台電腦輸給腳本?Bang的ID也涼了
白宮腳本小子特朗普推翻奧巴馬網路攻擊審批流程
機器人動畫的金字塔與動畫腳本界的超新星
一個自動登錄的腳本
月神腳本圈:用戰旗直播引流腳本,提高直播平台社交引流技術
DNF二覺任務副本漏洞:角色無限疲勞值,工作室腳本刷遊戲幣