涉及到的技術點:
- 圖色/文字識別
- 鍵盤/鼠標操作
- 多線程技術
- 前台/后台(綁定)技術
一、圖色/文字識別
圖色:預先設定要找的圖色,然后在指定的區域內尋找,返回對應的坐標
文字:預先設定好文字的點陣,然后用ocr技術,在區域內尋找,返回對應的點陣綁定的文字
ps:尋找需要一個時間過程,我們可以給尋找的函數添加一個循環查找並設置超時時間。
二、鍵鼠操作
模擬鍵鼠的操作
三、多線程技術
可以同時執行不同的任務,並且數據互通。
對於同一個窗口而言,一般最多只能同時進行一個操作,所以多線程是建立在不影響正常的操作的前提上,
比如自動打怪,需要一個線程去判斷自身血量並自動加血,一個線程去尋找怪物,一個線程去監聽尋找怪物線程的結果,去執行走位和打怪等。如果是單線程,也可以做到,但是效率上面會大打折扣。分線程是為了解決可以並行的業務的執行。
另外,多線程還可以解決一個異常的問題:
比如我們的腳本在按順序的執行過程中,假設遇到一些預想不到的情況,腳本的進程卡在某個環境,那么我們有2個做法:
1、在主線程每個可能異常的環境,增加各種異常判斷和處理,保障腳本可以繼續運行下去
2、在主線程並不考慮各種異常,統一交給異常線程去處理,異常線程捕捉到異常后,先暫停或停止主線程(如有必要),然后處理異常,再啟動主線程繼續執行
好處代碼比較優雅,可維護性和開發效率都會比較大的提升。
四、前后/后台技術
有前台與后台之分,如果是后台,不影響前台工作,並且可以多開多個鼠標同時操作,但是需要先綁定窗口。綁定后,所有的界面操作和坐標,都是基於綁定的窗口而言
三、