游戲腳本技術(shù):按鍵精靈判斷人物行走狀態(tài)
方法一:顏色點對比在人物行走過程中,我們可以通過判斷游戲畫面有沒有變化來確定人物是否還在行走。具體操作步驟如下:1. 觀察游戲里人物行走時會變化的區(qū)域和停止時不變化的區(qū)域。2. 獲取這些區(qū)域內(nèi)的任意幾
方法一:顏色點對比
在人物行走過程中,我們可以通過判斷游戲畫面有沒有變化來確定人物是否還在行走。具體操作步驟如下:
1. 觀察游戲里人物行走時會變化的區(qū)域和停止時不變化的區(qū)域。
2. 獲取這些區(qū)域內(nèi)的任意幾個顏色點。
3. 對比第一次獲取到的點和第二次獲取到的點的顏色值是否一樣。
如果要判斷更多的點,可以定義更多的變量來記錄不同點的顏色值。當兩次獲取到的值進行對比后,如果結(jié)果一致,則說明人物未移動,反之則表示人物正在行走中。
代碼示例:
```
Do
TracePrint "判斷人物行進狀態(tài)"
LoopFunction 判斷人物行進狀態(tài)
Dim i, j, ColorA1, ColorB1, ColorC1, ColorD1, ColorA2, ColorB2, ColorC2, ColorD2
For i 0 To 1
j 0
ColorA1 ColorA2
ColorB1 ColorB2
ColorC1 ColorC2
ColorD1 ColorD2
ColorA2 (198, 63, 0)
ColorB2 (375, 155, 0)
ColorC2 (204, 360, 0)
ColorD2 (508, 525, 0)
If ColorA1 ColorA2 Then
j j 1
End If
If ColorB1 ColorB2 Then
j j 1
End If
If ColorC1 ColorC2 Then
j j 1
End If
If ColorD1 ColorD2 Then
j j 1
End If
If j > 2 Then
判斷人物行進狀態(tài) 0 ' 停止行走
Exit Function
End If
Next
判斷人物行進狀態(tài) 1 ' 行走中
End Function
```
方法二:使用大漠插件
另一種判斷游戲畫面變化的方法是使用大漠插件的IsDisplayDead函數(shù)。這個函數(shù)可以判斷指定區(qū)域內(nèi)的圖像數(shù)據(jù)是否在指定時間內(nèi)一直不變。具體操作步驟如下:
1. 調(diào)用注冊大漠插件的命令。
2. 使用IsDisplayDead函數(shù)判斷區(qū)域內(nèi)的圖像是否在變化。
代碼示例:
```
Call 注冊大漠()
Set dm createobject("")
DO
If (37, 89, 663, 556, 3) 1 Then
TracePrint "不走了"
Else
TracePrint "行走中"
End If
Loop
Function 注冊大漠()
Dim i
' 釋放附件內(nèi)容
PutAttachment "C: est_game", "*.*"
Set ws createobject("")
For i 0 To 20
' 注冊atl跟dm插件
("regsvr32 atl.dll -s")
("regsvr32 C: est_gamedm.dll -s")
Delay 200
Set ws nothing
Set dm createobject("")
ver ()
' 輸出版本號
If ver <> "" Then
Exit For
End If
Next
If i > 20 Then
TracePrint "大漠插件注冊失??!"
End If
Set dm nothing
Delay 10
End Function
```
需要注意的是,IsDisplayDead函數(shù)的等待時間最小只能設(shè)置為0.6秒。如果希望等待時間少于0.6秒,建議使用方法一來判斷人物行走狀態(tài)。