我正在做一个自上而下的坦克游戏,我似乎无法让子弹的准确度达到100% 根据我的鼠标位置,它可以是关闭或只是打开
我使用下面的公式计算到达目标的行程角度(MousePosition)
double dx = MousePosition.x - TankPosition.x;
double dy = MousePosition.y - TankPosition.y;
double angle = Math.atan2(dy, dx);
double tx = Math.cos(angle) * speed;
double ty = Math.sin(angle) * speed;
x += tx;
y += ty;
答案 0 :(得分:3)
我猜你的问题是整数与浮点问题,而且是四舍五入的问题。如果您使用整数,则每次更新时都会对结果进行舍入。这意味着,根据您的鼠标位置,它将是点(如果您的鼠标位于不受舍入影响的位置)或略微偏离,并且将根据所述目标位置看似随机变化,这听起来像您对问题的描述。你想要将位置跟踪为浮点数,并且仅在使用它绘制时将其舍入,而不是在计算时进行计算。