计划是计算两点(字符和光标)之间的斜率,将其转换为水平角度,并根据该角度切换到特定的字符精灵,使其看起来指向光标(例如:0-30度,一个精灵.30-60度,另一个精灵.60-90另一个,等等)。我之后遇到的问题是斜坡可能在某种程度上相互映射。
我意识到(现在看似很明显)的问题是,在A点处的角色和在B点的光标将具有与字符点B和光标在A点相同的斜率/角度。它没有办法知道指向的方向。
我不知道该怎么办。最简单的解决方案就是让它不会通过这种方式找到玩家的方向(无论是向右还是向左),而是通过箭头键,但我将其作为最后的手段保存为它会导致快速瞄准的问题。
答案 0 :(得分: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);
答案 1 :(得分: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