我對我的遊戲有點麻煩。我試圖讓球從一個點移動到另一個點。我的繼承人代碼:C++ 3D角速度
void Create()
{
// Initialise points
StartPosition - { 20, 0, 5 };
EndPosition = { -20, 0, 5 };
}
void Calculate()
{
// Calculate difference in axis
float X = EndPosition.x - StartPosition.x;
float Z = EndPosition.z - StartPosition.z;
// Calculate y-axis rotation
float Rotation = atan2(Z, X) * (180/M_PI);
// Calculate velocity
Velocity.x = cos(Rotation) * 5;
Velocity.y = 0.0f;
Velocity.z = sin(Rotation) * 5;
}
我知道,旋轉被正確的(180)計算,但它計算速度錯誤:
X: -2.9923
Y: 0
Z: -4.00576
現在看到的起點和終點都是Z = 5,我會認爲Z軸速度應該是0?
我完全錯過了什麼嗎?
如果你想讓你的球從一點跳到另一點,不要使用旋轉。彈跳球的軌跡是拋物線,這顯然更容易計算。 – cmaster