【发布时间】:2019-01-18 21:47:19
【问题描述】:
我想要实现的是一个精灵在 2D 环境中移动到另一个精灵。我从基本的 Mx = Ax - Bx 交易开始。但我注意到精灵越接近目标,它的速度就越慢。因此,我尝试根据速度创建一个百分比/比率,然后每个 x 和 y 都获得了速度津贴的百分比,但是,它的行为非常奇怪,并且似乎只有在 Mx 和 My 为正时才有效 以下是代码摘录:
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 交易开始。但我注意到精灵越接近目标,它的速度就越慢。”听起来您的输入或输出首先有问题您需要调试而不是调整公式来解决您的错误。您应该找到第二个点的向量,并按增量时间缩放该向量以找到新位置。
标签: c++ game-physics velocity