]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Game.cs
Seperated GameLogic from the Display
[chaz/carfire] / CarFire / CarFire / CarFire / Game.cs
index c867b3c749e072a65d4fbe30a50913427e2b7191..937cd4d87a243d20a1cf6978eacc465b103a49cf 100644 (file)
@@ -24,7 +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 List<Projectile> mProjectiles = new List<Projectile>();\r
+        public Player[] mCharacters = new Player[4];\r
         public Display mDisplay;\r
 \r
         #endregion\r
@@ -232,7 +233,6 @@ namespace CarFire
 \r
 \r
         #region Public Methods\r
-\r
         public bool IsCellOpen(Point point)\r
         {\r
             if (!State.Map.IsCellOpen(point)) return false;\r
@@ -246,10 +246,26 @@ namespace CarFire
         public Game()\r
         {\r
            \r
+        }\r
+        /// <summary>\r
+        /// This method should be called whenever the players want to move to a new map.\r
+        /// Not implemented yet.  Need some way to get next map.\r
+        /// </summary>\r
+        public void startNewMap()\r
+        {\r
+            //TODO somehow get next map\r
+            State.Entities.Clear();\r
+            //State.Map = State.Map.getNextMap();\r
+            for (int i = 0; i < State.mCharacters.Length; i++)\r
+            {\r
+                State.mCharacters[i].Coordinates = State.Map.GetStartingPositionForPlayer(i + 1);\r
+            }\r
+            State.Entities = State.Map.GetAllEntities();\r
         }\r
         public void LoadContent(ContentManager contentManager)\r
         {\r
             mContentManager = contentManager;\r
+            menu = mContentManager.Load<SpriteFont>("menuFont");\r
             \r
         }\r
 \r
@@ -365,7 +381,7 @@ namespace CarFire
         public long Update(TimeSpan elapsedTime)\r
         {\r
             State.AdvanceFrame(mInputs, elapsedTime.Milliseconds);  // Apply the inputs, advance game state.\r
-            State.mDisplay.Update(elapsedTime, State, mThisPlayerID);\r
+            State.mDisplay.Update(elapsedTime, 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
@@ -382,17 +398,28 @@ namespace CarFire
                 if (State.mCharacters[i] == null)\r
                 {\r
                     allCharactersSelected = false;\r
-                    if (State.GetKeysDown(i).Contains(Keys.Enter))\r
+                    if (State.GetKeysDown(i).Contains(Keys.M))\r
+                    {\r
+                        State.mCharacters[i] = new Melee(this, "", State.Map.GetStartingPositionForPlayer(i + 1), i);\r
+                        State.mCharacters[i].LoadContent(mContentManager);\r
+                    }\r
+                    else if (State.GetKeysDown(i).Contains(Keys.R))\r
                     {\r
-                        State.mCharacters[i] = new Human(this, "", State.Map.GetStartingPositionForPlayer(i + 1));\r
+                        State.mCharacters[i] = new Ranged(this, "", State.Map.GetStartingPositionForPlayer(i + 1), i);\r
                         State.mCharacters[i].LoadContent(mContentManager);\r
                     }\r
                 }\r
             }\r
             if (allCharactersSelected)\r
             {\r
+                \r
                 State.mDisplay.Draw(spriteBatch);\r
             }\r
+            else\r
+            {\r
+                spriteBatch.GraphicsDevice.Clear(Color.Black);\r
+                spriteBatch.DrawString(menu, "Press R to select a Ranged Character and M to select a Melee Character", new Vector2(30, 30), Color.RosyBrown);\r
+            }\r
             return CurrentFrameNumber;\r
         }\r
 \r
@@ -401,7 +428,7 @@ namespace CarFire
 \r
         #region Private Variables\r
 \r
-        Display mDisplay;\r
+        SpriteFont menu;\r
 \r
         ContentManager mContentManager;\r
         NextInputs mInputs;\r
This page took 0.023714 seconds and 4 git commands to generate.