(続き)
ただ、上で書いたように敵の配列にBoundingBoxを設定したのについて
きちんと働いているようです。

BoundingBox shotClsn1 = new BoundingBox(
new Vector3(shot1pos[0].X, shot1pos[0].Y, 0),
new Vector3(shot1pos[0].X + 30, shot1pos[0].Y + 30, 0));

for (int i = 0; i < enemy1s.Count; i++)
{
  BoundingBox enemyClsn1 = new BoundingBox(
      new Vector3(enemy1s[i].X, enemy1s[i].Y, 0),
new Vector3(enemy1s[i].X + 30, enemy1s[i].Y + 30, 0));

  if (shotClsn1.Intersects(enemyClsn1) == true)
  {
enemy1s.Remove(enemy1s[i]);
  }
}
とやった場合、ショット[0]があたった敵から消えてくれます。
この場合はenemyClsn1は配列にはなっていないのですがそれぞれの
値が保持されているように見えます。
このenemyClsn1もまた、ひとつひとつ設定しようとすると
「既にスコープで宣言されています」とエラーがでてしまうのですが・・・
まだ理解しきれていないので中途半端な返事になってしまい申し訳ありません。