我正在尝试让精灵走向另一个精灵,
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绳索中。 但是运动并不完美,它并没有按照我的意愿实现,需要奇怪的转动等等。
答案 0 :(得分:2)
很难确切地说出你的代码出了什么问题,但这里有一些你可以看到的东西:
target
的向量,您需要通过点target->x
和x
减去target->y
点y
< / LI>
movement_angle
需要是浮点数,但您可能希望doubles
用于所有3D几何值x
,y
走到target->x
,target->y
,为什么不使用矢量,将其标准化,然后乘以movementspeed
和delta
?答案 1 :(得分:0)
你正在将一个代数结果输出到一个int。我认为这可能会导致你的问题。