|
|
发表于 2009-1-21 09:25:00
|
显示全部楼层
Re:【求助】2D游戏中怪物追赶主角的算法
提供一个函数,模拟当前点到目标点当前应该用什么样的速度,然后用得到的速度来更新你的位置
void CalculateVelocity(Vector2D& out, const Vector2D& CurrentPos, const Vector2D& AimPos, float Speed, float deceleration)
{
Vector2D ToTarget = AimPos - CurrentPos;
double dist = ToTarget.Length();
if (dist > 0)
{
const double DecelerationTweaker = 0.2;
double speed = dist / ((double)deceleration * DecelerationTweaker);
//确定没有超过你设定的速度
speed = min(speed, Speed);
out = ToTarget * speed / dist;
return;
}
out = Vector2D(0,0);
} |
|