X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FGame.cs;h=c867b3c749e072a65d4fbe30a50913427e2b7191;hb=25534219ab3703f063d98867f928e47e6cecc0f1;hp=38ec627d1456dcff5531f055f9e4a3f45808872d;hpb=db8ff41d389a83c3fb8743139afa1dea99eef434;p=chaz%2Fcarfire diff --git a/CarFire/CarFire/CarFire/Game.cs b/CarFire/CarFire/CarFire/Game.cs index 38ec627..c867b3c 100644 --- a/CarFire/CarFire/CarFire/Game.cs +++ b/CarFire/CarFire/CarFire/Game.cs @@ -24,6 +24,8 @@ namespace CarFire public Map Map; public List Entities = new List(); + public IPlayer[] mCharacters = new IPlayer[4]; + public Display mDisplay; #endregion @@ -243,12 +245,12 @@ namespace CarFire public Game() { - mDisplay = new Display(this); + } public void LoadContent(ContentManager contentManager) { mContentManager = contentManager; - mDisplay.LoadContent(contentManager); + } public void UnloadContent() @@ -290,6 +292,8 @@ namespace CarFire State = new GameState(numPlayers); mInputs = new NextInputs(numPlayers); + State.mDisplay = new Display(this); + State.mDisplay.LoadContent(mContentManager); State.Map = mContentManager.Load("Maps/stable"); State.Map.Game = this; @@ -361,7 +365,7 @@ namespace CarFire public long Update(TimeSpan elapsedTime) { State.AdvanceFrame(mInputs, elapsedTime.Milliseconds); // Apply the inputs, advance game state. - mDisplay.Update(elapsedTime, State, mThisPlayerID); + State.mDisplay.Update(elapsedTime, State, mThisPlayerID); State.Entities.ForEach(delegate(IEntity e) { e.Update(elapsedTime); }); mInputs = new NextInputs(State.NumberOfPlayers); // Start with inputs cleared on the next frame. //mDisplay.Update(elapsedTime); @@ -371,7 +375,24 @@ namespace CarFire public long Draw(SpriteBatch spriteBatch) { - mDisplay.Draw(spriteBatch); + bool allCharactersSelected = true; + for (int i = 0; i < State.NumberOfPlayers; i++) + { + //If player has not selected a player yet let them select one. + if (State.mCharacters[i] == null) + { + allCharactersSelected = false; + if (State.GetKeysDown(i).Contains(Keys.Enter)) + { + State.mCharacters[i] = new Human(this, "", State.Map.GetStartingPositionForPlayer(i + 1)); + State.mCharacters[i].LoadContent(mContentManager); + } + } + } + if (allCharactersSelected) + { + State.mDisplay.Draw(spriteBatch); + } return CurrentFrameNumber; }