]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Game.cs
Character selection is now done in the Game Class instead of the display class.
[chaz/carfire] / CarFire / CarFire / CarFire / Game.cs
index fa3fbd1b9e7b6a5a4134b40f135cf1ddb1144d2a..c867b3c749e072a65d4fbe30a50913427e2b7191 100644 (file)
@@ -24,6 +24,8 @@ namespace CarFire
 \r
         public Map Map;\r
         public List<IEntity> Entities = new List<IEntity>();\r
+        public IPlayer[] mCharacters = new IPlayer[4];\r
+        public Display mDisplay;\r
 \r
         #endregion\r
 \r
@@ -243,12 +245,12 @@ namespace CarFire
 \r
         public Game()\r
         {\r
-            mDisplay = new Display(this);\r
+           \r
         }\r
         public void LoadContent(ContentManager contentManager)\r
         {\r
             mContentManager = contentManager;\r
-            mDisplay.LoadContent(contentManager);\r
+            \r
         }\r
 \r
         public void UnloadContent()\r
@@ -290,6 +292,8 @@ namespace CarFire
 \r
             State = new GameState(numPlayers);\r
             mInputs = new NextInputs(numPlayers);\r
+            State.mDisplay = new Display(this);\r
+            State.mDisplay.LoadContent(mContentManager);\r
 \r
             State.Map = mContentManager.Load<Map>("Maps/stable");\r
             State.Map.Game = this;\r
@@ -361,7 +365,7 @@ namespace CarFire
         public long Update(TimeSpan elapsedTime)\r
         {\r
             State.AdvanceFrame(mInputs, elapsedTime.Milliseconds);  // Apply the inputs, advance game state.\r
-            mDisplay.Update(elapsedTime, State);\r
+            State.mDisplay.Update(elapsedTime, State, mThisPlayerID);\r
             State.Entities.ForEach(delegate(IEntity e) { e.Update(elapsedTime); });\r
             mInputs = new NextInputs(State.NumberOfPlayers);  // Start with inputs cleared on the next frame.\r
             //mDisplay.Update(elapsedTime);\r
@@ -371,7 +375,24 @@ namespace CarFire
 \r
         public long Draw(SpriteBatch spriteBatch)\r
         {\r
-            mDisplay.Draw(spriteBatch);\r
+            bool allCharactersSelected = true;\r
+            for (int i = 0; i < State.NumberOfPlayers; i++)\r
+            {\r
+                //If player has not selected a player yet let them select one.\r
+                if (State.mCharacters[i] == null)\r
+                {\r
+                    allCharactersSelected = false;\r
+                    if (State.GetKeysDown(i).Contains(Keys.Enter))\r
+                    {\r
+                        State.mCharacters[i] = new Human(this, "", State.Map.GetStartingPositionForPlayer(i + 1));\r
+                        State.mCharacters[i].LoadContent(mContentManager);\r
+                    }\r
+                }\r
+            }\r
+            if (allCharactersSelected)\r
+            {\r
+                State.mDisplay.Draw(spriteBatch);\r
+            }\r
             return CurrentFrameNumber;\r
         }\r
 \r
This page took 0.02516 seconds and 4 git commands to generate.