如何使用按鍵精靈計算最近的怪物/包裹/金礦坐標(biāo)?
在游戲中,我們常常需要尋找離人物最近或最遠(yuǎn)的怪物、包裹或金礦等。這時候,按鍵精靈可以幫助我們快速計算出它們的坐標(biāo)。下面,我將介紹一些相關(guān)的知識點和代碼段,幫助大家了解如何使用按鍵精靈計算最近的怪物/包
在游戲中,我們常常需要尋找離人物最近或最遠(yuǎn)的怪物、包裹或金礦等。這時候,按鍵精靈可以幫助我們快速計算出它們的坐標(biāo)。下面,我將介紹一些相關(guān)的知識點和代碼段,幫助大家了解如何使用按鍵精靈計算最近的怪物/包裹/金礦坐標(biāo)。
數(shù)學(xué)知識:已知坐標(biāo)求距離
在計算最近的怪物/包裹/金礦坐標(biāo)時,我們需要用到數(shù)學(xué)知識:已知坐標(biāo)求距離。假設(shè)已知坐標(biāo)A(X1,Y1)、B(X2,Y2),那么AB之間的距離有一個計算公式:
距離sqr((X1-X2)2 (Y1-Y2)2)
即:距離等于兩個坐標(biāo)的橫坐標(biāo)之差的平方,加上縱坐標(biāo)之差的平方,兩個平方相加,再取它們的平方根。
冒泡排序算法
接下來,讓我們來介紹一種排序算法——冒泡排序(Bubble Sort)。它的名字由來是因為越大的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端,像魚吐泡泡一樣。同樣,也可以讓越大的元素沉到數(shù)列底部。
冒泡排序算法的運(yùn)作如下:
1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2. 對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。在這一點,最后的元素應(yīng)該會是最大的數(shù)。
3. 針對所有的元素重復(fù)以上的步驟,除了最后一個。
4. 持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
思路解析
當(dāng)我們獲取到人物的坐標(biāo),以及各個物品的坐標(biāo)并存入數(shù)組后,就可以計算人物距離各個物品的坐標(biāo)距離,存入數(shù)組。然后,通過各個坐標(biāo)距離的比較,從而獲取到最小距離(距離人物最近的物品)以及最大距離(距離人物最遠(yuǎn)的物品),輸出相對應(yīng)的物品坐標(biāo)。
大神代碼段
以下是一段按鍵精靈腳本代碼,用于計算最近的怪物/包裹/金礦坐標(biāo)。其中,coordinate為物品坐標(biāo),range為距離,Arr為物品坐標(biāo)的數(shù)組,Ub為物品坐標(biāo)的最大下界。
```vb
x 300:y 330 '人物的坐標(biāo)
coordinate "200,300|10,20|60,800|500,321|456,789|421,6|300,320|320,290" '物品(怪物)的坐標(biāo)
Arr split(coordinate, "|") '將坐標(biāo)分割成數(shù)組
Ub UBound(Arr) '獲取數(shù)組最大下界
range(Ub)用來存儲每個物品離人物的距離,xx(Ub)用來存儲每個物品的X坐標(biāo),yy(Ub)用來存儲每個物品的Y坐標(biāo)
Redim range(Ub), xx(Ub), yy(Ub) '初始化數(shù)組
'計算所有的物品坐標(biāo),離人物的距離,存在range數(shù)組里
For i 0 To Ub
x1 split(Arr(i), ",")(0): y1 split(Arr(i), ",")(1)
xx(i) x1: yy(i) y1
range(i) sqr((x1 - x) ^ 2 (y1 - y) ^ 2)
Next
'通過冒泡排序,將人物離每個物品的距離,按照從小到大的順序排列,并根據(jù)距離的排序,相應(yīng)的調(diào)整物品的X坐標(biāo)和Y坐標(biāo)在數(shù)組中的位置。
For m 0 To Ub
For n m 1 To Ub
If range(m) > range(n) Then
k range(m): range(m) range(n): range(n) k
k xx(m): xx(m) xx(n): xx(n) k
k yy(m): yy(m) yy(n): yy(n) k
End If
Next
Next
TracePrint "距離人物最近的坐標(biāo)為:" xx(0) "," yy(0)
TracePrint "距離人物最遠(yuǎn)的坐標(biāo)為:" xx(Ub) "," yy(Ub)
```
知識拓展
除了使用已知坐標(biāo)求距離的方法外,我們還可以通過找圖來獲取到人物(或者其他玩意)的坐標(biāo),再通過找圖來獲取到物品(或者其他不明物品)的坐標(biāo),然后套用上面的思路進(jìn)行計算。