Ejemplo n.º 1
0
 public void UpdatePlayerScoreFromPlayerDeath(object sender, PlayerDiedEventArgs e)
 {
     if (ReferenceEquals(e.DeadPlayer, ParentHUD.Player))
     {
         playerScore = clamp(playerScore - 500);
     }
 }
Ejemplo n.º 2
0
        private void HandlePlayerDeath(object sender, PlayerDiedEventArgs e)
        {
            Camera camera = Player1Camera;

            if (ReferenceEquals(e.DeadPlayer, Player2) && (Mode == GameMode.MultiPlayer))
            {
                camera = Player2Camera;
            }

            if ((Mode == GameMode.MultiPlayer) && MultiplayerMode != MultiplayerType.ScoreWithLives)
            {
                e.DeadPlayer.Lives++;
            }

            if (e.DeadPlayer.Lives <= 0)
            {
                State = GameState.GameOver;
            }
            else
            {
                camera.Limits = level.LevelAreas[0];
                BlockFactory.SpriteFactory = NormalThemedBlockSpriteFactory.Instance;

                gameGrid.Remove(e.DeadPlayer);
                e.DeadPlayer.ResetToCheckpoint();
                gameGrid.Add(e.DeadPlayer);

                camera.LookAt(e.DeadPlayer.Position);
                if (ReferenceEquals(e.DeadPlayer, Player1))
                {
                    _backgroundP1 = new Background(spriteBatch, camera, BackgroundType.Overworld);
                }
                else if (Mode == GameMode.MultiPlayer)
                {
                    _backgroundP2 = new Background(spriteBatch, camera, BackgroundType.Overworld);
                }
            }
        }