0

计划是计算两点(字符和光标)之间的斜率,将其转换为与水平方向的角度,并根据该角度切换到特定的字符精灵,使其看起来指向光标(例如:0-30 度,一个精灵。30-60 度,另一个精灵。60-90 另一个,等等)。后来我遇到的问题是斜坡可以在某种程度上相互镜像。

我意识到(现在看起来很明显)的问题是,将字符放在 A 点,将光标放在 B 点将具有与字符 B 点和光标在 A 点相同的斜率/角度。它无法知道方向指向。

我的问题的插图

我不知道从这里做什么。最简单的解决方案是拥有它,这样就不会通过这种方式找到玩家的方向(无论它是面向右侧还是左侧),而是通过箭头键,但我将其保存为最后的手段它会导致快速瞄准的问题。

4

2 回答 2

2
double deltaX = point1.x - point2.x;
double deltaY = point1.y - point2.y;
double angleInRadians = java.lang.Math.atan2(deltaX, deltaY);
double length = java.lang.Math.sqrt(deltaX * deltaX + deltaY * deltaY);
于 2012-11-02T20:52:34.757 回答
1

您应该能够使用精灵/光标位置以及斜率来解决这个问题。

伪代码:

if(slope is positive and cursor is to the right of sprite)
{
   sprite should face right (first quadrant, 0-90 degrees)
}
else if( slope is positive and cursor is to the left of sprite)
{
   sprite should face left (third quadrant, 180-270 degrees)
} 
//etc
于 2012-11-02T20:45:09.110 回答