この当たり判定っておかしいですか?

 RECT tr,sr[SHOT],r;
 Teki teki;//敵クラスの作成

 SetRect(&tr, teki.Get_TekiX() , teki.Get_TekiY() , teki.Get_TekiX() + teki.Get_TW() , teki.Get_TekiY() + teki.Get_TH());

 // 弾と敵の当たり判定、弾の数だけ繰り返す
 for(int i = 0 ; i < SHOT ; i ++ )
  {
    SetRect(&sr[i], ShotX[i], ShotY[i], ShotX[i] + sW, ShotY[i] + sH);

    // 弾iが存在している場合のみ次の処理に映る
    if( ShotFlag[ i ] == true ){
      
      if(IntersectRect(&r,&sr[i], &tr)){
        
        // 接触している場合は当たった弾の存在を消す
        ShotFlag[ i ] = false ;
      }
    }
 }