using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using SpacePew.Models; namespace SpacePew { /// /// This is a game component that implements IUpdateable. /// public class Hud : GameComponent, IDrawable { SpriteBatch _spriteBatch; readonly MainGame _game; SpriteFont _consoleFont; public Hud(MainGame game) : base(game) { _game = game; } /// /// Allows the game component to perform any initialization it needs to before starting /// to run. This is where it can query for any required services and load content. /// public override void Initialize() { _spriteBatch = new SpriteBatch(_game.GraphicsDevice); _consoleFont = _game.Content.Load("Fonts\\ConsoleFont"); base.Initialize(); } public void Draw(GameTime gameTime) { if (_game.NetworkClient.LocalPlayer != null) { _spriteBatch.Begin(); _spriteBatch.DrawString(_consoleFont, string.Format("Health: {0}", _game.NetworkClient.LocalPlayer.Health), new Vector2(300, _game.GraphicsDevice.Viewport.Height - 100), Color.White); _spriteBatch.DrawString(_consoleFont, string.Format("Fuel: {0}", _game.NetworkClient.LocalPlayer.Fuel), new Vector2(300, _game.GraphicsDevice.Viewport.Height - 75), Color.White); _spriteBatch.DrawString(_consoleFont, string.Format("Heat #1: {0}", _game.NetworkClient.LocalPlayer.Weapon.Heat), new Vector2(500, _game.GraphicsDevice.Viewport.Height - 100), Color.White); _spriteBatch.DrawString(_consoleFont, string.Format("Heat #2: {0}", _game.NetworkClient.LocalPlayer.SecondaryWeapon.Heat), new Vector2(500, _game.GraphicsDevice.Viewport.Height - 75), Color.White); _spriteBatch.DrawString(_consoleFont, string.Format("Entities: {0}", ((List)EntityFactory.Instance.Entities).Count), new Vector2(500, _game.GraphicsDevice.Viewport.Height - 50), Color.White); _spriteBatch.DrawString(_consoleFont, string.Format("Pos X: {0}", _game.NetworkClient.LocalPlayer.Position.X), new Vector2(700, _game.GraphicsDevice.Viewport.Height - 100), Color.White); _spriteBatch.DrawString(_consoleFont, string.Format("Pos Y: {0}", _game.NetworkClient.LocalPlayer.Position.Y), new Vector2(700, _game.GraphicsDevice.Viewport.Height - 75), Color.White); _spriteBatch.End(); } } public int DrawOrder { get { return 2; } } public bool Visible { get { return true; } } event EventHandler IDrawable.DrawOrderChanged { add { } remove { } } event EventHandler IDrawable.VisibleChanged { add { } remove { } } } }