所以我目前正在努力学习 slick。在遇到问题之前我做得很好。我一直试图找到一个好小时的答案,但找不到。所以我决定把它贴在这里。
我的问题:我在 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。
我的代码有什么问题?
任何帮助表示赞赏!
谢谢,凯尔