[手機按鍵備忘]大型項目下的坐標的使用方法(感謝鳳凰師兄的幫助)
平時我們點擊手機上的坐標就幾種情況
1.通過找圖找色找字 獲取到目標的位置坐標信息 然後tap intX,intY就可以了
2.有些按鈕在指定界面是固定的位置雷打不動 比如各個界面的右上關閉按鈕 我們也不需要做圖色找到了對應的關閉按鈕 只是需要按鍵抓抓獲取這個界面的關閉按鈕的坐標 用tap 100,200這樣點擊下就實現了關閉
問題:
平時我們項目小 基本上和坐標相關的主要是這2個情況 還有一些非常少見的這裏就不說了
項目大的情況下 我的前一個腳本2w多行 就拿之前的 遊戲主界面的關閉按鈕來算 可能我登錄部分操作就需要關閉3次遊戲主界面 那麽就需要
if 多點bi色(多點bi色_遊戲主界面)>-1 then
tap 400,1040 //主界面關閉按鈕坐標
end if
這樣寫3次 ,如果簽到也需要關閉1次 日常也需要4次 退出更需要3次,每次我們都要寫tap 400,1040 很麻煩而且都要註釋 而且如果整個項目要更換手機分辨率 要改動這一個坐標,我們需要找11個位置依次調整 這只是其中一個坐標修改的難點 如果大型項目 裏面會充斥的大量的這種情況的坐標 導致我們調整修改的難度非常大
應對辦法:
1.點擊坐標數組格式化
Dim 多點bi色_上半部分標誌=array("38|232|E1833B-202020,69|242|E1833B-202020,52|263|E1833B-202020,31|250|E1833B-202020",0.9,100,"上半部分標誌")
Dim 坐標_桌面界面_系統應用圖標按鈕=array(51,115,0,0,"發現界面_右上關閉按鈕")//鑒於傳奇天下和熱血戰紀的坐標修改的巨大困難 項目很大就統一把坐標再這裏以這樣的格式聲明成固定格式數組來使用 方便之後的修改
將坐標數組化 和多點找色 找圖一樣信息都數組化 調用的時候用自己寫的點擊函數來點擊一下就可以了 一旦該坐標發生了變化 我們只需要調整這個數組的元素內容就可以把所有的該坐標數組都會跟著變化
call tapX(坐標_桌面界面_系統應用圖標按鈕)
缺點:因為公共變量是摻雜有中文 我們打出坐標二字後 無法有智能提示 一旦這類的坐標數組多起來容易混淆記不清楚
/* 作用:配合再聲明區定義的坐標數組 點擊對應的坐標 例子:tapX 坐標_發現界面_右上關閉按鈕 聲明區定義的內容 Dim 坐標_發現界面_右上關閉按鈕=array(100,200,0,0,"發現界面_右上關閉按鈕") 參數:就一個數組 第一個元素是點擊的橫坐標 第二個是點擊的縱坐標 第三個是第四個分別對應2個方向上的偏移 第五個是代表該坐標的含義 用法 直接tapX 坐標_桌面界面_系統應用圖標按鈕 即可 問題:問題不在於函數本身 而是在於函數的參數 坐標數組 因為一旦變量加入了中文 就無法智能提示對應的可選變量了 雖然如果把坐標變成函數 可以實現智能提示 但是總不能一個坐標對應一個函數 更費勁了 簡單說 這樣調用對用的坐標數組 不會智能提示 好麻煩*/ Function tapX(坐標數組) Dim 全組,分組,result,臨時X,臨時Y result=-1 //1檢測下數組是否符合要求(1)數組元素數量是否大於等於2 數組前2個元素是否是數值 If UBOUND(坐標數組) < 1 Then result = 0 TracePrint "點擊坐標:-<" & cstr(坐標數組(4)) & ">-失敗 坐標數組存在問題" ElseIf not IsNumeric(坐標數組(0)) or not IsNumeric(坐標數組(1)) or not IsNumeric(坐標數組(2)) or not IsNumeric(坐標數組(3)) Then result = 0 TracePrint "點擊坐標:-<" & cstr(坐標數組(4)) & ">-失敗 坐標數組存在問題" Else 臨時X = CInt(坐標數組(0)) + CInt(坐標數組(2)) 臨時Y = CInt(坐標數組(1)) + CInt(坐標數組(3)) Tap 臨時X, 臨時Y TracePrint "點擊坐標:=[" & cstr(坐標數組(4)) & "]=, [" & cstr(臨時X) & ", " & cstr(臨時Y) &"]" End If End Function
2.點擊坐標函數化(推薦)
3我們把點擊該坐標寫入一個函數內
Sub 點擊_遊戲主界面_右上關閉按鈕()
Tap 400,1040
End Sub
優點:這個寫法有智能提示 只要我們寫了點擊_後 就會有智能提示 非常方便
缺點:會造成大量的函數
[手機按鍵備忘]大型項目下的坐標的使用方法(感謝鳳凰師兄的幫助)