private void CheckCollision(int objectCount) { for (int n = 0; n < objectCount; n++) { for (int m = n + 1; m < objectCount; m++) { GameObjectVertical obj1 = gameObjects[n]; GameObjectVertical obj2 = gameObjects[m]; if (MathFunctions.IsOneOfType <AreaDamage>(obj1, obj2)) { PerformAreaDamage(obj1, obj2); } else if (MathFunctions.IsOneOfType <AreaShieldCollision>(obj1.AreaCollision, obj2.AreaCollision) && MathFunctions.IsOneOfType <PlayerBullet>(obj1, obj2)) { PerformShieldAreaCollision(obj1, obj2); } if (obj1.CollisionBounding.Intersects(obj2.CollisionBounding)) { CollisionHandlingVerticalShooter.GameObjectsCollision(obj1, obj2); } } } }