自機から基準角度を出し、そこから±15の範囲に居る敵を取得したいのですが、思うようにいきません・・・
例として、
基準角度が0度の場合、自機から-15度~15度の範囲に居る敵を取得する
大体は出来たのですが、Degで-179度~180度の範囲でやっているため(atan2を使用している関係で)
基準角が170度などの時に、範囲が155~185度になってしまい、181度以上に居る敵を取得することが出来ません;;
コードはこんな感じです
for( int i=0 ; i < MAX_ENEMY ; i++ ){
//存在する
if( EnemyBase.GetFlag(i) == true ){
double TarAng = atan2( EnemyBase.GetY( i ) - GetY(), EnemyBase.GetX( i ) - GetX() ) * (180 / PI) ;
//フリーアングルの範囲内なら
if( FreeAngle -15 <= TarAng && TarAng <= FreeAngle +15 ){
//距離を取得する
double xx = X - EnemyBase.GetX(i);
double yy = Y - EnemyBase.GetY(i);
double Span = xx*xx + yy*yy;
if( Min > Span ){
Min = Span;
Set = i;
}
}
}
}