普段1ドット敵弾しか使わないからこんな複雑に考えてないんだけど

・矩形だの円形だのを表すShape抽象クラスを作る
・具体的な判定は bool Shape::IsIntercept( const Shape& other ) みたいなのでやってやる

・判定したいオブジェクトのためにIColliderインタフェイスを作る
・IColliderには形状取得関数GetShapeと衝突通知関数OnInterceptがある

・衝突判定空間としてAreaクラスみたいのも作ってやる
・Areaクラスに判定したいオブジェクトを突っ込みまくる
・GetShapeで形状取得してIsInterceptで判定して結果がtrueならOnInterceptを呼び出す

こんな感じかねー
なんかOOPくさすぎる気もするけどw