お前らRPGツクールでゲーム作れって LAWルート
■ このスレッドは過去ログ倉庫に格納されています
0313名前は開発中のものです。
2009/06/20(土) 11:05:19ID:IrWZy+Ag自分なりに色々作って、今のところは↓に落ち着いてる。
ATAN[i]=(180/PI)*Math.round(Math.atan((i-139)/139)); //atanの配列。i=0,1,2,…,139*2
function atan2(s1,s2,x1,x2){
dx=s1-x1;
dy=dz=s2-x2;
dz*=-1;
//二分探索で。
if(dx>=dy){
if(dx>=dz){
theta=360;goto label1;
}else{
theta=270;dy=dx;dx=dz;goto label1;
}
}else{
if(dx>=dz){
theta=90;dy=dx;dx=dz;goto label1;
}else{
theta=180;goto label1;
}
}
label1:
atan=ATAN[dy*139/dx+139]+theta;
atan%=360;
}
消費ステップは最低で16、最高で19。「139」という数字に特に意味はなくて、
大きめの奇数なら何でもいい。
■ このスレッドは過去ログ倉庫に格納されています