理貨浩傢伙,計算角度,XYZ +旋轉和我的敵人他的XYZ +旋轉[線性代數]
這個問題考慮了線性代數的領域中數學一個地方,我功虧一簣,以解決這個問題。所以我希望你們能幫助我:D。
我想創建一個單人自動踢球者的作弊遊戲稱爲安裝和刀片。這個自動踢球者的目標是始終用數學的力量成功踢出球員。由於互聯網的幫助(aimbot,esp,...),我設法實現了許多目標,但現在我有點被卡住了,因爲我不知道足夠的線性代數來獲取角度等等。這些是我擁有的東西
我的XYZ(播放位置)
旋轉從座標開始(0,0)弧度轉換爲度(-180; 180)
敵人XYZ和旋轉
如果距離小於 1浮標且玩家位於另一位玩家的前方,則玩家可以成功踢出另一名玩家。因此,爲什麼我需要計算我所看到的方向與敵人XYZ之間的角度。我會在油漆畫什麼I want to achieve.
These are the values displayed in game首先是計算的下一個距離敵人旋轉和最後一個是我的旋轉。我認爲輪換是在0,0現場完成的
任何幫助表示讚賞和獎勵與一個巨大的讚許:D!
float Distance(D3DXVECTOR3 vector1, D3DXVECTOR3 vector2)
{
return sqrt(pow((vector1.x - vector2.x), 2) + pow((vector1.y - vector2.y), 2) + pow((vector1.z - vector1.z), 2));
}
bool AutoKick()
{
for (size_t i = 0; i < cPlayerBase.size(); i++)
{
float DistanceToLocalPlayer = Distance(cPlayerBase[i]->vec, mainPlayer.vec); // vec is X Y Z
float number = Rad2Deg(atan2(cPlayerBase[i]->vecRotation[1], cPlayerBase[i]->vecRotation[0])); // X Y rotation
if(cPlayerBase[i]->address == mainPlayer.pointer)
std::cout << "My degree -- " << number;
if (DistanceToLocalPlayer != 0.0f)
{
std::cout << "Enemy Distance -- " << DistanceToLocalPlayer << "Enemy degree -- " << number;
}
std::cout << std::endl;
}
return true;
}
本主題將在遊戲或數學交換團隊中獲得更多的關注。 –
試過數學沒有人迴應:(我不認爲遊戲開發者對於作弊是非常有幫助的,即使對於單人遊戲 –
對於我而言,你並不完全清楚你在問什麼,但它聽起來像你想計算兩個3d向量之間的角度。使用餘弦的[幾何定義]](https://en.wikipedia.org/wiki/Dot_product#Geometric_definition)。 – Praxeolitic