目录
算法原理
设A‘为敌人的平面投影,B‘为玩家的平面投影,鼠标X弧度大小计算如下所示 [其中 y 为 玩家y坐标与敌人坐标y的差值,x为 玩家x坐标与敌人x坐标差值]
y鼠标Y弧度计算原理相同。所成角度是 玩家z坐标与敌人z坐标差值,根号y平方与x平方的值,也是二维计算方法,三维图不好画,大家理解就行。
获取敌人离屏幕中心的距离
void GetXYDistance(PlayerData* EL, float* XYDistance)
{
float EnemyXY[2];
WordToScreen(EL->Position, EnemyXY);
//在屏幕内
if ((EnemyXY[0] > 0 && EnemyXY[0] < g_winRect.right - g_winRect.left) &&
(EnemyXY[1] > 0 && EnemyXY[1] < g_winRect.bottom - g_winRect.top))
{
*XYDistance = fabs(EnemyXY[0] - ((g_winRect.right - g_winRect.left) / 2)