diff --git a/DepthsBelow/DepthsBelow/Core.cs b/DepthsBelow/DepthsBelow/Core.cs index 0b10036..7d48672 100644 --- a/DepthsBelow/DepthsBelow/Core.cs +++ b/DepthsBelow/DepthsBelow/Core.cs @@ -1,119 +1,119 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Audio; -using Microsoft.Xna.Framework.Content; -using Microsoft.Xna.Framework.GamerServices; -using Microsoft.Xna.Framework.Graphics; -using Microsoft.Xna.Framework.Input; -using Microsoft.Xna.Framework.Media; - -namespace DepthsBelow -{ - /// - /// This is the main type for your game - /// - public class Core : Microsoft.Xna.Framework.Game - { - GraphicsDeviceManager graphics; - SpriteBatch spriteBatch; - - public Camera camera; - MouseControl mouse; - Soldier soldier; - - public Core() - { - graphics = new GraphicsDeviceManager(this); - Content.RootDirectory = "Content"; - - graphics.PreferredBackBufferWidth = 1280; - graphics.PreferredBackBufferHeight = 720; - graphics.IsFullScreen = false; - - this.IsMouseVisible = true; - } - - /// - /// Allows the game to perform any initialization it needs to before starting to run. - /// This is where it can query for any required services and load any non-graphic - /// related content. Calling base.Initialize will enumerate through any components - /// and initialize them as well. - /// - protected override void Initialize() - { - // TODO: Add your initialization logic here - camera = new Camera(this); - base.Initialize(); - } - - /// - /// LoadContent will be called once per game and is the place to load - /// all of your content. - /// - protected override void LoadContent() - { - // Create a new SpriteBatch, which can be used to draw textures. - spriteBatch = new SpriteBatch(GraphicsDevice); - - // TODO: use this.Content to load your game content here - Soldier.LoadContent(this); - soldier = new Soldier(this); - - mouse = new MouseControl(this); - mouse.LoadContent(); - } - - /// - /// UnloadContent will be called once per game and is the place to unload - /// all content. - /// - protected override void UnloadContent() - { - // TODO: Unload any non ContentManager content here - } - - /// - /// Allows the game to run logic such as updating the world, - /// checking for collisions, gathering input, and playing audio. - /// - /// Provides a snapshot of timing values. - protected override void Update(GameTime gameTime) - { - // Allows the game to exit - if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) - this.Exit(); - - camera.Update(gameTime); - mouse.Update(gameTime); - - // TODO: Add your update logic here - soldier.Update(gameTime); - - base.Update(gameTime); - } - - /// - /// This is called when the game should draw itself. - /// - /// Provides a snapshot of timing values. - protected override void Draw(GameTime gameTime) - { - GraphicsDevice.Clear(Color.CornflowerBlue); - - spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, null, null, null, camera.Transform); - - // TODO: Foreach etc... - Component.SpriteRenderer rc = soldier.GetComponent(); - if (rc != null) - rc.Draw(spriteBatch); - - mouse.Draw(spriteBatch); - - spriteBatch.End(); - - base.Draw(gameTime); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Audio; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.GamerServices; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using Microsoft.Xna.Framework.Media; + +namespace DepthsBelow +{ + /// + /// This is the main type for your game + /// + public class Core : Microsoft.Xna.Framework.Game + { + GraphicsDeviceManager graphics; + SpriteBatch spriteBatch; + + public Camera camera; + MouseInput mouse; + Soldier soldier; + + public Core() + { + graphics = new GraphicsDeviceManager(this); + Content.RootDirectory = "Content"; + + graphics.PreferredBackBufferWidth = 1280; + graphics.PreferredBackBufferHeight = 720; + graphics.IsFullScreen = false; + + this.IsMouseVisible = true; + } + + /// + /// Allows the game to perform any initialization it needs to before starting to run. + /// This is where it can query for any required services and load any non-graphic + /// related content. Calling base.Initialize will enumerate through any components + /// and initialize them as well. + /// + protected override void Initialize() + { + // TODO: Add your initialization logic here + camera = new Camera(this); + base.Initialize(); + } + + /// + /// LoadContent will be called once per game and is the place to load + /// all of your content. + /// + protected override void LoadContent() + { + // Create a new SpriteBatch, which can be used to draw textures. + spriteBatch = new SpriteBatch(GraphicsDevice); + + // TODO: use this.Content to load your game content here + Soldier.LoadContent(this); + soldier = new Soldier(this); + + mouse = new MouseInput(this); + mouse.LoadContent(); + } + + /// + /// UnloadContent will be called once per game and is the place to unload + /// all content. + /// + protected override void UnloadContent() + { + // TODO: Unload any non ContentManager content here + } + + /// + /// Allows the game to run logic such as updating the world, + /// checking for collisions, gathering input, and playing audio. + /// + /// Provides a snapshot of timing values. + protected override void Update(GameTime gameTime) + { + // Allows the game to exit + if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) + this.Exit(); + + camera.Update(gameTime); + mouse.Update(gameTime); + + // TODO: Add your update logic here + soldier.Update(gameTime); + + base.Update(gameTime); + } + + /// + /// This is called when the game should draw itself. + /// + /// Provides a snapshot of timing values. + protected override void Draw(GameTime gameTime) + { + GraphicsDevice.Clear(Color.CornflowerBlue); + + spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, null, null, null, camera.Transform); + + // TODO: Foreach etc... + Component.SpriteRenderer rc = soldier.GetComponent(); + if (rc != null) + rc.Draw(spriteBatch); + + mouse.Draw(spriteBatch); + + spriteBatch.End(); + + base.Draw(gameTime); + } + } +} diff --git a/DepthsBelow/DepthsBelow/MouseControl.cs b/DepthsBelow/DepthsBelow/MouseInput.cs similarity index 92% rename from DepthsBelow/DepthsBelow/MouseControl.cs rename to DepthsBelow/DepthsBelow/MouseInput.cs index 9482663..e27d3a9 100644 --- a/DepthsBelow/DepthsBelow/MouseControl.cs +++ b/DepthsBelow/DepthsBelow/MouseInput.cs @@ -1,63 +1,63 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Content; -using Microsoft.Xna.Framework.Graphics; -using Microsoft.Xna.Framework.Input; -using Microsoft.Xna.Framework.Media; - -namespace DepthsBelow -{ - class MouseControl - { - Core core; - MouseState lastMouseState; - Rectangle selectionRectangle; - Texture2D selectionTexture; - - public MouseControl(Core core) - { - this.core = core; - - selectionRectangle = Rectangle.Empty; - } - - public void LoadContent() - { - selectionTexture = new Texture2D(core.GraphicsDevice, 1, 1); - selectionTexture.SetData(new Color[] { Color.White }); - } - - public void Update(GameTime gameTime) - { - MouseState ms = Mouse.GetState(); - - if (ms.LeftButton == ButtonState.Pressed) - { - if (selectionRectangle == Rectangle.Empty) - { - selectionRectangle = new Rectangle(ms.X + (int)core.camera.Position.X, ms.Y + (int)core.camera.Position.Y, 0, 0); - } - else - { - selectionRectangle.Width = ms.X - selectionRectangle.X + (int)core.camera.Position.X; - selectionRectangle.Height = ms.Y - selectionRectangle.Y + (int)core.camera.Position.Y; - } - } - - if (ms.LeftButton == ButtonState.Released && selectionRectangle != Rectangle.Empty) - { - selectionRectangle = Rectangle.Empty; - } - - lastMouseState = ms; - } - - public void Draw(SpriteBatch spriteBatch) - { - spriteBatch.Draw(selectionTexture, selectionRectangle, Color.Red * 0.5f); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using Microsoft.Xna.Framework.Media; + +namespace DepthsBelow +{ + class MouseInput + { + Core core; + MouseState lastMouseState; + Rectangle selectionRectangle; + Texture2D selectionTexture; + + public MouseInput(Core core) + { + this.core = core; + + selectionRectangle = Rectangle.Empty; + } + + public void LoadContent() + { + selectionTexture = new Texture2D(core.GraphicsDevice, 1, 1); + selectionTexture.SetData(new Color[] { Color.White }); + } + + public void Update(GameTime gameTime) + { + MouseState ms = Mouse.GetState(); + + if (ms.LeftButton == ButtonState.Pressed) + { + if (selectionRectangle == Rectangle.Empty) + { + selectionRectangle = new Rectangle(ms.X + (int)core.camera.Position.X, ms.Y + (int)core.camera.Position.Y, 0, 0); + } + else + { + selectionRectangle.Width = ms.X - selectionRectangle.X + (int)core.camera.Position.X; + selectionRectangle.Height = ms.Y - selectionRectangle.Y + (int)core.camera.Position.Y; + } + } + + if (ms.LeftButton == ButtonState.Released && selectionRectangle != Rectangle.Empty) + { + selectionRectangle = Rectangle.Empty; + } + + lastMouseState = ms; + } + + public void Draw(SpriteBatch spriteBatch) + { + spriteBatch.Draw(selectionTexture, selectionRectangle, Color.Red * 0.5f); + } + } +}