public override void Initialize()
        {
            camera = (ICamera)Game.Services.GetService(typeof(ICamera));
            beatDetector = (IBeatDetector)Game.Services.GetService(typeof(IBeatDetector));

            view = camera.View;
            projection = camera.Projection;

            // Issues...currently chooses the same formation (or at least doubles up) every time.  Want some starting randomness
            for (int i = 0; i < NUM_FORMATIONS; ++i)
            {
                formations.Add(CreateFormation(Utility.Prng.Next(MIN_NUM_ENEMIES, MAX_NUM_ENEMIES + 1), i));
                Game.Components.Add(formations[i]);
            }

            base.Initialize();
        }
        // Required function: initialize the velocity vector list for enemy formations and updates enemy positions as necessary
        public override void Initialize()
        {
            velocities.Add(Vector3.Right);
            collisionManager = (ICollisionManager)Game.Services.GetService(typeof(ICollisionManager));
            beatDetector = (IBeatDetector)Game.Services.GetService(typeof(IBeatDetector));

            for (int i = 0; i < enemies.Capacity; ++i)
            {
                Enemy enemy = Enemy.Create(Game, color);
                enemy.Position = startPoint;
                enemy.Reinitialize = true;
                collisionManager.AddEnemy(enemy);
                enemies.Add(enemy);
            }
            base.Initialize();
        }
		/// <summary>
		/// Creates a new controller.
		/// </summary>
		public SDLController() {
			NullPlayerData data = new NullPlayerData();
			
			this.mPlayerData = data;
			this.mBeatDetector = data;
		}