public static void CreateNewPlayers(GameScreen i_GameScreen, params ConfSpaceShip[] i_ConfSpaceShips)
        {
            PlayerSpaceInvaders player = null, beforePlayer = null;
            float xSpaceShip, yLifes = 0, xLifes = (float)i_GameScreen.Game.GraphicsDevice.Viewport.Width - 20;

            for (int i = 0; i < i_ConfSpaceShips.Length; i++)
            {
                string nickname = "P" + (i + 1).ToString();
                player = new PlayerSpaceInvaders(i_GameScreen, nickname, i_ConfSpaceShips[i].SpaceShipType);
                foreach (Life life in player.LifesSprites)
                {
                    life.Position = new Vector2(xLifes, yLifes);
                    xLifes       -= 20;
                }

                yLifes += 20;
                xLifes  = (float)i_GameScreen.Game.GraphicsDevice.Viewport.Width - 20;
                player.SpaceShip.Configuration = i_ConfSpaceShips[i];
                if (beforePlayer != null)
                {
                    xSpaceShip = beforePlayer.SpaceShip.Position.X + beforePlayer.SpaceShip.Width + (beforePlayer.SpaceShip.Width / 2);
                    player.SpaceShip.Position    = new Vector2(xSpaceShip, 0);
                    player.ScoreMessage.Position = new Vector2(beforePlayer.ScoreMessage.Position.X, beforePlayer.ScoreMessage.Position.Y + 20);
                }

                beforePlayer = player;
                i_GameScreen.Game.Components.Add(player);
                player.ScoreMessage.TextString = string.Format("{0} Score: {1}", player.Nickname, player.Score);
            }
        }
Ejemplo n.º 2
0
 void Awake()
 {
     player_invader    = this;
     mouse_click_input = this.GetComponentInChildren <QueueMouseClicks>();
     sprite            = this.GetComponentInChildren <SpriteRenderer>();
     hit_noise         = this.GetComponent <AudioSource>();
 }
        private static PlayerSpaceInvaders getWinningPlayer(Game i_Game)
        {
            int maxScore = -1;
            PlayerSpaceInvaders        winningPlayer = null;
            List <PlayerSpaceInvaders> allPlayers    = getAllPlayers(i_Game);

            foreach (PlayerSpaceInvaders player in allPlayers)
            {
                if (player.Score > maxScore)
                {
                    maxScore      = player.Score;
                    winningPlayer = player;
                }
            }

            return(winningPlayer);
        }
        public static PlayerSpaceInvaders GetPlayerComponent(Game i_Game, string i_GunSerialNumber)
        {
            PlayerSpaceInvaders player = null;

            foreach (GameComponent component in i_Game.Components)
            {
                player = component as PlayerSpaceInvaders;
                if (player != null)
                {
                    if (player.SpaceShip.SerialNumber.Equals(i_GunSerialNumber))
                    {
                        break;
                    }
                }
            }

            return(player);
        }
        public static bool IsAllPlayersLost(Game i_Game)
        {
            bool isAllPlayersLost = true;

            foreach (GameComponent component in i_Game.Components)
            {
                PlayerSpaceInvaders player = component as PlayerSpaceInvaders;
                if (player != null)
                {
                    if (player.Lifes > 0)
                    {
                        isAllPlayersLost = false;
                        break;
                    }
                }
            }

            return(isAllPlayersLost);
        }
        public static void GameOver(Game i_Game)
        {
            PlayerSpaceInvaders        winningPlayer = getWinningPlayer(i_Game);
            List <PlayerSpaceInvaders> otherPlayers  = getAllPlayers(i_Game, winningPlayer);
            List <string> playerScores = new List <string>();
            string        line         = string.Format("{0} Won! {0} score is: {1}", winningPlayer.Nickname, winningPlayer.Score);

            playerScores.Add(line);
            foreach (PlayerSpaceInvaders player in otherPlayers)
            {
                if (winningPlayer.Nickname != player.Nickname)
                {
                    line = string.Format("{0} Lost! {0} score is: {1}", player.Nickname, player.Score);
                    playerScores.Add(line);
                }
            }

            GetScreensManagerComponent(i_Game).SetCurrentScreen(new GameOverScreen(i_Game, playerScores));
        }