public void Draw(SpriteBatch spriteBatch, Player player) { spriteBatch.Draw(texture,new Rectangle(0,player.level.Height*32,player.level.Width*32,32), Color.White); string text = string.Format("Gold : {0} Lives : {1}", player.Money, player.Lives); spriteBatch.DrawString(font, text, textPosition, Color.White); }
public Enemy(Vector2 position, float health, int bountyGiven, float speed, Player player, List<Texture2D> textures, Pathfinder pathFinder) : base(textures[0], position) { this.startHealth = health; this.currentHealth = startHealth; this.player = player; this.bountyGiven = bountyGiven; this.speed = speed; EnemyDied += new EnemyDiedEventHandler(player.RaiseStats); this.textures = textures; this.pathFinder = pathFinder; }
private Queue<Wave> waves = new Queue<Wave>(); // A queue of all our waves #endregion Fields #region Constructors public WaveManager(Level level, int numberOfWaves, Player player, List<Texture2D> textures, Pathfinder pathFinder) { this.numberOfWaves = numberOfWaves; this.level = level; for (int i = 0; i < numberOfWaves; i++) { int initialNumerOfEnemies = 6; int numberModifier = (i / 6) + 1; Wave wave = new Wave(i, initialNumerOfEnemies * numberModifier, level, player, textures, pathFinder); waves.Enqueue(wave); } StartNextWave(); }
private void UpdateInput(Player player, GameTime gameTime) { foreach (LocalNetworkGamer gamer in networkSession.LocalGamers) { ReceiveNetworkData(gamer, gameTime); packetWriter.Write(player.Money); packetWriter.Write(player.Lives); packetWriter.Write(player.Towers.Count); if (player.Towers.Count >= 1) { packetWriter.Write(player.Towers[player.Towers.Count-1].Position); } packetWriter.Write(player.waveManager.CurrentWave.Enemies.Count); foreach (Enemy e in player.waveManager.CurrentWave.Enemies) { packetWriter.Write(e.Position); } gamer.SendData(packetWriter, SendDataOptions.None); player.Update(gameTime, true); } }
private void HandleGameplayInput(Player player, GameTime gameTime) { UpdateInput(player, gameTime); networkSession.Update(); }
void DrawPlayer(Player player, Viewport viewport) { //GraphicsDevice.Clear(Color.CornflowerBlue); graphics.GraphicsDevice.Viewport = viewport; spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend); player.Draw(spriteBatch); spriteBatch.End(); }
protected override void Update(GameTime gameTime) { MouseState mouse = Mouse.GetState(); KeyboardState kstatee = Keyboard.GetState(); switch (CurrentGameState) { case GameState.Video: //if (vidPlayer.State == MediaState.Stopped) CurrentGameState = GameState.MainMenu; break; case GameState.MainMenu: if (buttonSP.isClicked == true) { spPlayer = new Player(Content, "Player1" ); CurrentGameState = GameState.SinglePlayer; screenwidth = spPlayer.level.Width * 32; screenheight = (spPlayer.level.Height + 1) * 32; graphics.PreferredBackBufferWidth = screenwidth; graphics.PreferredBackBufferHeight = screenheight; graphics.ApplyChanges(); } if (buttonMP.isClicked == true) { CurrentGameState = GameState.Multiplayer; splitbar = Content.Load<Texture2D>("Game/SplitBalken"); spPlayer = new Player(Content, "Player1"); //spPlayer nur zwecks Abmessungen screenwidth = spPlayer.level.Width * 32 * 2 +2 ; screenheight = (spPlayer.level.Height + 1) * 32; graphics.PreferredBackBufferWidth = screenwidth; graphics.PreferredBackBufferHeight = screenheight; graphics.ApplyChanges(); GraphicsDevice.Viewport = new Viewport(0, 0, screenwidth, screenheight); graphics.ApplyChanges(); mainViewport = GraphicsDevice.Viewport; leftViewport = mainViewport; rightViewport = mainViewport; leftViewport.Width = (leftViewport.Width / 2 ) -1; rightViewport.Width = (rightViewport.Width / 2)-1 ; rightViewport.X = leftViewport.Width +2; graphics.ApplyChanges(); } if (buttonHS.isClicked == true) { highscore = new HighScore(Content.Load<Texture2D>("MainMenu/Back"), graphics.GraphicsDevice); screenwidth = 300; screenheight = 300; graphics.PreferredBackBufferWidth = screenwidth; graphics.PreferredBackBufferHeight = screenheight; graphics.ApplyChanges(); CurrentGameState = GameState.HighScore; } if (buttonEX.isClicked == true) CurrentGameState = GameState.Exiting; buttonSP.Update(mouse); buttonMP.Update(mouse); buttonHS.Update(mouse); buttonEX.Update(mouse); break; case GameState.SinglePlayer: if (SignedInGamer.SignedInGamers[0].Gamertag != null && SignedInGamer.SignedInGamers[0].Gamertag != spPlayer.Name) spPlayer.Name = SignedInGamer.SignedInGamers[0].Gamertag; if (spPlayer.Lives <= 0 && spPlayer.Lives != -1) { spPlayer.Lost(); spPlayer.Lives = -1; } if(spPlayer.Lives > 0) spPlayer.Update(gameTime, true); break; case GameState.Multiplayer: if (!Guide.IsVisible) { foreach (SignedInGamer signedInGamer in SignedInGamer.SignedInGamers) { Player player = signedInGamer.Tag as Player; if (networkSession != null) { if (networkSession.SessionState == NetworkSessionState.Lobby) { HandleLobbyInput(); } else { if(player.Lives>0) HandleGameplayInput(player, gameTime); } } else if (availableSessions != null) { HandleAvailableSessionsInput(); } else { HandleTitleScreenInput(); } } } break; case GameState.HighScore: if (highscore.highscorebutton.isClicked == true) { SetMainMenuOptions(); } highscore.Update(mouse); break; case GameState.Exiting: this.Exit(); break; } if (kstatee.IsKeyDown(Keys.Escape)) { if (CurrentGameState == GameState.MainMenu) CurrentGameState = GameState.Exiting; else { SetMainMenuOptions(); } } base.Update(gameTime); }