让精灵沿着一个角度行走

Make sprite walk along an angle

我想让一个精灵走向另一个精灵,

movement_angle = (atan2((y - target->y),(x - target->x)));

if(isWalkable(game,delta))
{
    y -= ((int)(movementspeed)*delta)*sin(((movement_angle)));
    x -= ((int)(movementspeed)*delta)*cos(((movement_angle)));
}

我正在计算角度并将值添加到我的 x 和 y 线。 但是动作并不完美,没有真正如愿以偿,走弯路等等。

好吧,您正在将代数结果转换为 int。我认为这可能会导致您的问题。

很难准确地说出您的代码出了什么问题,但您可以查看以下内容:

  1. 要获得从一个点到 target 的向量,您需要用点的 x 减去 target->x 并用点的 [=14= 减去 target->y ]
  2. 至少 movement_angle 需要是一个浮点数,尽管您可能希望对所有 3D 几何值使用 doubles
  3. 为什么要麻烦三角函数?你想直接从点 xy 走到 target->xtarget->y,为什么不直接使用一个向量,将它归一化,然后乘以你的 movementspeeddelta?