所以我目前正在研究浮油 . 我一直很好,直到遇到问题 . 我一直试图找到一个好时光的答案而不能 . 所以我决定把它贴在这里 .
我的问题:我有800 X 800网格上的播放器 . 我试图让玩家以直线移动到网格上的某个点 . 现在我可以让他继续前进X然后转向Y,但我想让他尽可能快地到达那里 . 所以我想我是否可以从以下几点制作一个直角三角形(玩家位置,目标位置,以及X,Y截距,请看下面的图像) .
My code:
Adj = (int) (TargetX-x); // Get The size of the Adjacent leg.
Opp = (int) (TargetY-y); // Get the size of the Opposite leg.
OppAdj = Opp/Adj; //Inverse tan is Opposite/Adjacent
TargetAngle = Math.abs(Math.atan(Opp/Adj)*100); //Keep the angle positive, and use inverse tan to get the missing angle.
现在我认为这样做可以解决缺失的角度,这样我就可以将玩家旋转一定数量,这样玩家可以直线移动并击中目标 .
这最终做的是给我一个73度的目标角度,变量OppAdj最终为1.0 .
我的代码出了什么问题?
任何帮助表示赞赏!
谢谢,凯尔
1 回答
那就是问题所在 . 你应该做这个:
这样它会给你一个准确的
double
. 顺便说说:应该: