向鼠标射击的行为非常糟糕 - Java

时间:2017-10-14 12:44:49

标签: java math

在我的游戏中,我使用此代码向特定位置(mouseX / Y)拍摄。如果 mouseX / Y 相同子弹进入方向,但当mouseX / Y 不同(例如20和10)时,子弹进入完全错误方向。谢谢你的帮助!

double bulletVelocity = 3.0; //however fast you want your bullet to travel
//mouseX/Y = current x/y location of the mouse
//originX/Y = x/y location of where the bullet is being shot from

double angle = Math.atan2(mouseX - originX, mouseY - originY);
o.setVelX((float)((bulletVelocity) * Math.cos(angle)));
o.setVelY((float)((bulletVelocity) * Math.sin(angle)));

1 个答案:

答案 0 :(得分:0)

atan2的文档说您需要按(y,x)顺序输入参数。这是一个奇怪的偏离典型的顺序,可能是由你输入分区的顺序所推动的。