|
marvin5c 發表於 Jun 30, 2018 7:36:02 GMT
最近在判斷無數字血條時有用到下面的寫法 目的是用血條位置的顏色變化來判斷血量百分比
while exists("A.png") do
getColor(Pattern("A.png"):targetOffset(x,y)) ...
end
因為A圖在畫面上不是一直存在的圖,有時候應該是A的exists判定過了,但是在getColor時A圖消失,結果就ERROR,
實際畫面上也沒有永遠不變的參照圖可以用,都是一下消失一下出現的,
有看到之前文章有提到usePreviousSnap沒法和getColor並用,自己試了好像也是如此
snapshot和snapshotColor也一樣,getColor好像就是固定截新的圖來比對
不曉得有沒有其它的解法,或是getColor有沒有什麼用法可以發生exception時跳過去
|
|
|
AnkuLua 發表於 Jun 30, 2018 8:16:04 GMT
如果確定血條與A圖位置關係,可以這樣寫
while exists("A.png") do getColor(getLastMatch():setTargetOffset(x,y)) ... end
|
|
|
marvin5c 發表於 Jun 30, 2018 14:17:18 GMT
如果確定血條與A圖位置關係,可以這樣寫 while exists("A.png") do getColor(getLastMatch():setTargetOffset(x,y)) ... end 試改了下 while exists("A.png") do
getColor(getLastMatch... <-第一個可以
getColor(getLastMatch... <--再一個就error,還是不能這樣連著用? ...
end
後來查了下有個xpcall(function,err)可以用來處理exception的問題
用function把可能發生問題但是可以跳過或另外的區塊包起來
也是可行的做法,但精確度就不一樣了
|
|
|
AnkuLua 發表於 Jun 30, 2018 15:13:02 GMT
可以先把getLastMatch() 結果存起來
while exists("A.png") do lastMatch = getLastMatch() getColor(lastMatch... getColor(lastMatch... ... end
|
|