劍靈人物移動方向有兩種方式:
1. 使用鍵盤來移動人物,方向的移動是透過滑鼠。
需要獲取人物坐標,然後自行去計算滑鼠移動的距離。
2. 透過滑鼠來移動人物和方向。
程式裡面就有計算人物移動方向的函式,因此我們可以分析它是如何計算的。
人物移動方向分析
步驟一:
xmm4是人物當前坐標x。
xmm3是人物當前坐標z。
xmm2是人物當前坐標y。
[rdi+80]是人物移動坐標x。
[rdi+84]是人物移動坐標z。
[rdi+88]是人物移動坐標y。
人物當前坐標減去人物移動坐標。
步驟二:
xmm1和xmm3是步驟一的坐標z相減後的值。
xmm1乘上xmm3。
xmm0和xmm4是步驟一的坐標x相減後的值。
xmm0乘上xmm4。
xmm1加上xmm0。
步驟三:
xmm1是步驟二的運算結果值。
xmm1平方根計算。
xmm2等於1。
xmm0是平方根運算後的值。
xmm2除上xmm0。
步驟四:
xmm3是步驟一的坐標z相減後的值。
xmm2是步驟三的運算後的值。
xmm3乘上xmm2。
xmm4是步驟一的坐標x相減後的值。
xmm1是步驟三的運算後的值。
xmm1乘上xmm4。
步驟五:
調用移動方向計算的函式,它需要2個參數,第一個參數是步驟四運算完的結果值(x、z),第二個參數是回傳值。
參數1和參數2都是浮點數坐標結構(x、z、y),其中回傳值是參數2的位移長度4 Bytes (rax+4)。