/// <summary> /// Create the game players /// </summary> /// <param name="i_PlayersNum">The number of players we want in the /// game</param> private void createPlayers(int i_PlayersNum) { m_Players = new SpaceShipComposite[i_PlayersNum]; m_PlayersAliveMark = new bool[i_PlayersNum]; m_PlayersLiveDrawer = new PlayerLivesDrawer[i_PlayersNum]; m_PlayersScoreDrawer = new PlayerScoreDrawer[i_PlayersNum]; createPlayer( new PlayerControls(), 1, Constants.k_Player1AssetName, k_Player1ScorePrefix); // In case we have 2 players in the game, we'll create the second // player if (i_PlayersNum == 2) { PlayerControls player2Controls = new PlayerControls( Microsoft.Xna.Framework.Input.Keys.Space, Microsoft.Xna.Framework.Input.Keys.A, Microsoft.Xna.Framework.Input.Keys.D, false); createPlayer( player2Controls, 2, Constants.k_Player2AssetName, k_Player2ScorePrefix); } }
/// <summary> /// Creates a new player in the game and adds it to the class /// game components /// </summary> /// <param name="i_PlayerControls">The controls that we want the new player /// will have</param> /// <param name="i_PlayerNum">The number of the new player</param> private void createPlayer( PlayerControls i_PlayerControls, int i_PlayerNum, string i_PlayerAsset, string i_ScorePrefix) { SpaceShip newPlayer = new SpaceShip( Game, i_PlayerAsset, i_PlayerControls, i_PlayerNum); newPlayer.PlayerIsDead += new PlayerIsDeadDelegate(spaceShip_PlayerIsDead); newPlayer.PlayActionSoundEvent += new PlayActionSoundDelegate(Component_PlayActionSoundEvent); SpaceShipComposite spaceShipHolder = new SpaceShipComposite( Game, newPlayer); PlayerLivesDrawer lDrawer = new PlayerLivesDrawer( Game, newPlayer); PlayerScoreDrawer sDrawer = new PlayerScoreDrawer( Game, newPlayer, i_ScorePrefix); this.Add(spaceShipHolder); this.Add(lDrawer); this.Add(sDrawer); m_Players[i_PlayerNum - 1] = spaceShipHolder; m_PlayersScoreDrawer[i_PlayerNum - 1] = sDrawer; m_PlayersLiveDrawer[i_PlayerNum - 1] = lDrawer; m_PlayersAliveMark[i_PlayerNum - 1] = true; }