|
|
发表于 2005-11-26 21:44:00
|
显示全部楼层
Re:位置如何转为角度?
我的射击游戏中一直用的方法,不知道效率怎么样,用起来很好
int ASK_a(int X1,int Y1,int X2,int Y2) /*得到中心点到目标点的角度*/
{
double duibian,linbian;
double m=0;
if(X1==X2&&Y1==Y2){return(-1);}
if(X2>X1)
linbian=X2-X1;
else
linbian=X1-X2;
if(Y2>Y1)
duibian=Y2-Y1;
else
duibian=Y1-Y2;
m=atan2(duibian,linbian)/3.1415*180;
/*atan2返回y/x的反正切值*/
if(X1>X2&&Y1>Y2) {m=180+m;}
else if(X1<X2&&Y1>Y2) {m=360-m;}
else if(X1>X2&&Y1<Y2) {m=180-m;}
else if(X1>X2&&Y1<Y2) {;}
else if(X1<X2&&Y1==Y2) {m=0;}
else if(X1==X2&&Y1<Y2) {m=90;}
else if(X1>X2&&Y1==Y2) {m=180;}
else if(X1==X2&&Y1>Y2) {m=270;}
return(m);
}
我的屏幕坐标是
上270
左180 右0
下90
这个函数自己用了3年了,哈哈
如果大家觉得需要改进,可以说说~~~欢迎
|
|