子弹精度关闭

时间:2013-01-12 22:42:24

标签: java algorithm 2d

我正在做一个自上而下的坦克游戏,我似乎无法让子弹的准确度达到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;

1 个答案:

答案 0 :(得分:3)

我猜你的问题是整数与浮点问题,而且是四舍五入的问题。如果您使用整数,则每次更新时都会对结果进行舍入。这意味着,根据您的鼠标位置,它将是点(如果您的鼠标位于不受舍入影响的位置)或略微偏离,并且将根据所述目标位置看似随机变化,这听起来像您对问题的描述。你想要将位置跟踪为浮点数,并且仅在使用它绘制时将其舍入,而不是在计算时进行计算。