让精灵沿着一个角度行走

Make sprite walk along an angle

本文关键字:一个 精灵      更新时间:2023-10-16

我试图让一个精灵走向另一个精灵,

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 线中。但是运动并不完美,它并没有真正按照我的意愿跟随,采取奇怪的转弯等等。

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

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

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