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);
                    }
                }
            }
        }