所以我試圖實現的是一個精靈在2D環境中移動到另一個精靈。我從基本的Mx = Ax - Bx交易開始。但我注意到精靈越接近目標,它就越慢。所以我試圖創建一個基於速度的百分比/比率,然後每個x和y都獲得它們的速度限制的百分比,但是,它的行爲非常奇怪,似乎只有在Mx和My都是正數時才起作用 以下是代碼段:在基本的C++引擎中使用一致的速度計算速度
ballX = ball->GetX();
ballY = ball->GetY();
targX = target->GetX();
targY = target->GetY();
ballVx = (targX - ballX);
ballVy = (targY - ballY);
percentComp = (100/(ballVx + ballVy));
ballVx = (ballVx * percentComp)/10000;
ballVy = (ballVy * percentComp)/10000;
編輯:/ 10000是減緩精靈運動
你可以用勾股定理ballV的長度設置爲特定數字。 –
「我從基本的* Mx = Ax - Bx *交易開始,但我注意到精靈越接近目標,它越慢。」聽起來像是你的輸入或輸出出了問題首先,你需要調試,而不是調整公式來解決你的錯誤。您應該找到第二個點的矢量,然後按照增量時間縮放該矢量以找到新的位置。 –