X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FGame.cs;h=be18be785b8d8a35c7f02dfbcbced0d8c414be74;hb=51e2ac05cd36fffa4fd39d592c5df91dae4752ed;hp=c867b3c749e072a65d4fbe30a50913427e2b7191;hpb=25534219ab3703f063d98867f928e47e6cecc0f1;p=chaz%2Fcarfire diff --git a/CarFire/CarFire/CarFire/Game.cs b/CarFire/CarFire/CarFire/Game.cs index c867b3c..be18be7 100644 --- a/CarFire/CarFire/CarFire/Game.cs +++ b/CarFire/CarFire/CarFire/Game.cs @@ -24,7 +24,7 @@ namespace CarFire public Map Map; public List Entities = new List(); - public IPlayer[] mCharacters = new IPlayer[4]; + public Player[] mCharacters = new Player[4]; public Display mDisplay; #endregion @@ -232,7 +232,6 @@ namespace CarFire #region Public Methods - public bool IsCellOpen(Point point) { if (!State.Map.IsCellOpen(point)) return false; @@ -246,10 +245,26 @@ namespace CarFire public Game() { + } + /// + /// This method should be called whenever the players want to move to a new map. + /// Not implemented yet. Need some way to get next map. + /// + public void startNewMap() + { + //TODO somehow get next map + State.Entities.Clear(); + //State.Map = State.Map.getNextMap(); + for (int i = 0; i < State.mCharacters.Length; i++) + { + State.mCharacters[i].Coordinates = State.Map.GetStartingPositionForPlayer(i + 1); + } + State.Entities = State.Map.GetAllEntities(); } public void LoadContent(ContentManager contentManager) { mContentManager = contentManager; + menu = mContentManager.Load("menuFont"); } @@ -382,17 +397,28 @@ namespace CarFire if (State.mCharacters[i] == null) { allCharactersSelected = false; - if (State.GetKeysDown(i).Contains(Keys.Enter)) + if (State.GetKeysDown(i).Contains(Keys.M)) + { + State.mCharacters[i] = new Melee(this, "", State.Map.GetStartingPositionForPlayer(i + 1), i); + State.mCharacters[i].LoadContent(mContentManager); + } + else if (State.GetKeysDown(i).Contains(Keys.R)) { - State.mCharacters[i] = new Human(this, "", State.Map.GetStartingPositionForPlayer(i + 1)); + State.mCharacters[i] = new Ranged(this, "", State.Map.GetStartingPositionForPlayer(i + 1), i); State.mCharacters[i].LoadContent(mContentManager); } } } if (allCharactersSelected) { + State.mDisplay.Draw(spriteBatch); } + else + { + spriteBatch.GraphicsDevice.Clear(Color.Black); + spriteBatch.DrawString(menu, "Press R to select a Ranged Character and M to select a Melee Character", new Vector2(30, 30), Color.RosyBrown); + } return CurrentFrameNumber; } @@ -401,7 +427,7 @@ namespace CarFire #region Private Variables - Display mDisplay; + SpriteFont menu; ContentManager mContentManager; NextInputs mInputs;