FPS遊戲通用自瞄與透視演算法詳解!!

2021-10-06 21:52:05 字數 1996 閱讀 9462

1:首先我們要找到乙個敵人的三維座標。

2:我們還要找到自己的三維座標。

3:我們還要找到自己的滑鼠座標x與y(這裡的滑鼠座標x與y是角度,x為360,y正中間為0向上減少到負90度,向下增加到90度)。

第一步 首先我們要計算自己與敵人座標之間的差值,這裡我們首先不考慮z座標:

這裡的i代表自己的位置,e代表敵人的位置,我們用我們自己座標的值減去敵人座標的值就得到如下面這張圖:

此時的y1與x1就是我們與敵人之間的差值。

*第二步 我們要計算自己與敵人的連線與x軸的夾角:

那麼∠α的值就是我們所求的角,我們可以用反正切函式求出它,這裡我們還要取它們的絕對值記為fx1與fy1:

∠α=atan((fy1/fx1));

這裡計算的∠α是弧度,我們還要轉成角度

∠α= ∠α×180/pi

此時的敵人是在第一象限,

所以我們還要接著來看第二象限:

*在第二象限中:

∠α=atan((fx1/fy1)),(x與y反過來了)

但是我們要求的是自己與敵人的連線與x軸的夾角,所以這裡我們還要在加上90度;

∠α=atan((fx1/fy1));

∠α= ∠α180/pi+90;

自己想一想;

接著看第三象限:

此時∠α=atan((fy1/fx1));

同樣我們還要加上180度:

∠α=atan((fy1/fx1));

∠α= ∠α180/pi+180;

第四象限:

這裡加上270度相信大家也明白了;

這裡還有四種簡單的情況:

當敵人在x軸的正半軸:

那麼 ∠α=0;

當敵人在y軸的正半軸:

那麼 ∠α=90;

當敵人在x軸的負半軸:

那麼 ∠α=180;

當敵人在y軸的負半軸:

那麼 ∠α=270;

好了基本的角度計算完畢現在我們需要我們的滑鼠x角度了,這裡我將它定義為:

bufferx=滑鼠x角度;

一些遊戲中滑鼠x角度的值並不是360而是當值增加到180後會變成負數這裡我們只要運算一下

if(bufferx<0)

那麼我們滑鼠的角度與敵人之間的角度我定義為:

c=滑鼠角度與敵人之間的角度。

∠α是我們與敵人的連線與x軸的夾角

而我們要求的是我們滑鼠所指向的x角度與敵人之間的角度大小也就是:

∠c∠c=bufferx-∠α;

這裡不止這麼簡單還有另外兩種情況:

if (∠α - bufferx > 180)

if (bufferx - ∠α > 180)

所以 aimbot=自瞄角度;

aimbot=bufferx—c;

只要將aimbot的值寫入存放滑鼠x座標的位址就行了;

關於上面怎樣判斷在第幾象限只要判斷

x1與y1是否大於0,或者是否小於0;

還有就是滑鼠y的值可以寫入為0,這樣就永遠指向正中間;

還可以寫乙個熱鍵監視,當我們按下滑鼠右鍵是就執行自瞄演算法:

while (true)

sleep(1);

}這就是整個自瞄的演算法了。

FPS遊戲通用準星修正實現自瞄

fps遊戲內的十字瞄準視角其實就是乙個視角攝像機這個應該不難理解吧,如何調整攝像機的視角就要用到乙個叫 姿態角 euler角 的資料,即 yaw pitch roll。這3個值的解釋如下 pitch是圍繞x軸旋轉,也叫做俯仰角 yaw是圍繞y軸旋轉,也叫偏航角 roll是圍繞z軸旋轉,也叫翻滾角 用...

FPS 遊戲自瞄原理

經常玩遊戲的朋友,應該知道fps遊戲,例如 穿越火線,逆戰等等,他們的特點就是以第一人稱視角進行操作人物,螢幕中間會有乙個準星,通過準星瞄準敵人進行攻擊以達到擊殺效果和遊戲體驗。由於fps遊戲的特殊遊戲體驗,所以使得很多不法分子利用逆向知識開發了很多自動瞄準的工具,破壞了遊戲平衡。具體的原理如下 1...

FPS遊戲的方框透視 自瞄原理

一,自瞄 準備工作 計算工作 二,方框透視 準備工作 計算工作 一,自瞄 基於所有的fps遊戲,都有乙個人物結構,包含人物在地圖上的三維座標,人物的準心資料。而實現記憶體自瞄就是通過查詢自己和敵人之前的三維座標資料,將三維座標資料轉換為二維的準心資料。準備工作 1.查詢人物的三維座標資料 以cs為例...