From bc3db44f8f717780cce18d5384272f501984e446 Mon Sep 17 00:00:00 2001 From: Charles Date: Sat, 20 Mar 2010 04:45:48 +0000 Subject: [PATCH] initial network code with partial lobby integration git-svn-id: https://bd85.net/svn/cs3505_group@13 92bb83a3-7c8f-8a45-bc97-515c4e399668 --- .../CS 3505 Project 06.csproj | 3 + .../Content/Content.contentproj | 49 +++ .../CS 3505 Project 06/Content/background.png | Bin 0 -> 288609 bytes .../CS 3505 Project 06/Content/checkedBox.png | Bin 0 -> 5150 bytes .../CS 3505 Project 06/Content/cs.png | Bin 0 -> 32342 bytes .../Content/deselectBox.png | Bin 0 -> 5426 bytes .../Content/emptySelectBox.png | Bin 0 -> 1341 bytes .../Content/menuFont.spritefont | 60 ++++ .../CS 3505 Project 06/Content/menuItem.png | Bin 0 -> 3421 bytes .../Content/selectGameScreen.png | Bin 0 -> 39913 bytes .../CS 3505 Project 06/Content/spotlight.png | Bin 0 -> 165242 bytes .../CS 3505 Project 06/Game06.cs | 130 +------- .../CS 3505 Project 06/ILobby.cs | 19 ++ .../CS 3505 Project 06/LobbyGUI.cs | 297 ++++++++++++++++++ .../CS 3505 Project 06/NetworkGame.cs | 258 +++++++++++++++ 15 files changed, 698 insertions(+), 118 deletions(-) create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/background.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/checkedBox.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/cs.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/deselectBox.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/emptySelectBox.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/menuFont.spritefont create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/menuItem.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/selectGameScreen.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/Content/spotlight.png create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/ILobby.cs create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/LobbyGUI.cs create mode 100644 Project06/CS 3505 Project 06/CS 3505 Project 06/NetworkGame.cs diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/CS 3505 Project 06.csproj b/Project06/CS 3505 Project 06/CS 3505 Project 06/CS 3505 Project 06.csproj index 41013cd..d0949de 100644 --- a/Project06/CS 3505 Project 06/CS 3505 Project 06/CS 3505 Project 06.csproj +++ b/Project06/CS 3505 Project 06/CS 3505 Project 06/CS 3505 Project 06.csproj @@ -86,6 +86,9 @@ + + + diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/Content.contentproj b/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/Content.contentproj index 04a7389..e766d8f 100644 --- a/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/Content.contentproj +++ b/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/Content.contentproj @@ -55,6 +55,55 @@ FontDescriptionProcessor + + + background + TextureImporter + TextureProcessor + + + checkedBox + TextureImporter + TextureProcessor + + + cs + TextureImporter + TextureProcessor + + + deselectBox + TextureImporter + TextureProcessor + + + emptySelectBox + TextureImporter + TextureProcessor + + + menuItem + TextureImporter + TextureProcessor + + + selectGameScreen + TextureImporter + TextureProcessor + + + spotlight + TextureImporter + TextureProcessor + + + + + menuFont + FontDescriptionImporter + FontDescriptionProcessor + + + + + + + Times New Roman + + + 18 + + + 0 + + + true + + + + + + + + + + + + ~ + + + + diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/menuItem.png b/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/menuItem.png new file mode 100644 index 0000000000000000000000000000000000000000..cf45ebdfc4074cd52e85805b146771f63641ca24 GIT binary patch literal 3421 zcmeHJ`&ScZ8vb%0RFF{M%xZi{I+TpHMPw~J7<^?-6KVhpz(l*GSae`C(cOy+#w_rA|O z@8x;VN9+??(HV3AfR!jDC<*{V6aN1!M8)rnhh6UYW5bD%1E&CR+_d^5q*o2%y8te0hv}`o?{w%+ zZA-oTP8p|LR8x*UMvqT72egE4`@25rNt;qBxfoSoLws!@mvzuJOE^_F6hE0)1`Y*% zrNiti?MSSYkrl~GbaJ6|+M7w8;Tw7SuOr!XfyTp$QjNuf*e%kX;Y|2(h}6@!&^zfn zcD`xu{MgdMGkEG=>$gi|9p^-O&!!}Wb&gCd!m~+6vo`r~d<2BbObP#ORs(Ti1NZU2 z`l?`_)ab9=LwcqY0c!$zxkkzaH_4RI2g;FFt(d z8g#K;|Cf6fmY=wEq>HEE=*reVEin=rm#E=+OV68TOue6#pe8^pq6F0)XzIRVA6LGV zoSY0|(ngEnIG2K!Y&LwOfArFi8GV^Au?h%Qh;RQDxrB)?V1FF+7yp^sF`69G&oxx> zmW%2152tuJC+wJ5+%LK>dfU6ZFRQg$t-7<5>_^sbTv&YWtC}Z`d82-+bSl^8u$osJ zY^Fg#s7L%GXmr1ypz%zcX2X@=F?WTAM$Nv7f<};+cv)Q>Rz%Swq}VhjMWLPOIA=Y2 zx4En;fRj&R03T==aY|30kVX53mF-H|MqPSq{#O#IDz`n?yxf^V{8cJ-9(QD;^-9a2U>IHli77P`CO#4aPv zkhnldEatVG%vuYJMqK|O!t-q^)d2&C2)*YxB*ZJif71JO7o>8Nl?Io_9yWg!^+-MS z8V-WuCx>q8MiB=gVo7z`^~rV?%?91B7;%KuZy6Lw(9057O;t_&)vF&iuV%|ILfW4e zvUgJWDv1l}0Ae~A-eiylL(9$IUM-%^?qg4E!!fnHbK*a@uo4QGScO2gRsaG`1Pu_l z@s*bKS$ti9G@0!Lx&m^4Myj7Vse4EmVASi((BNEPgH~VqakW-gO}=3bh#5*BmzQsm z><0uCT!>9G6HxdrfD{8-3)LU5J6|Juo%Xe&T~E06Qd@5_FNPnn-T$GzRxGo!mRDAI z3^z+tejV2j_qotaOvQm>;yXdQa@yK_bMwERn1fIP1c~;FaYinTKnA zk7dUo-Rcik6kNkb>2M7wS|K902M$`aK{FB(}jsQaE?EQaQQ{BbE)DC=>;LaHxcP{QQ*M}XPpAJXmE|Fry>NDfK z(_Gu(y(App)V($dX)r-9myc@Unj^~n7V&C`KFowCGx&XvcBqzu|7m-*~DO?`~RY_-Fuzzru_=@IV$E_1h*A9a9{(4V{8pnB;GKWOprs zPf_0dUJ)qAN1}iv+_%P2g6f}sWLkXgfuC&Wo`*KR1?-IlIXxTs{WGuJmC>zI?OCQz z@*x9U*W-XW;n5<#M(|7^>!+P-J>c!7$`;#h0ioL7jFC7#EQZ|wVtp;rF@KTpa}0XN zwZ@f+ISo9!IP=?#h|o2Qg~dDwJ*FIItc?%o?K4)wtu*p&X%4+XI8Q!cgKuwqzx0>; z_fv>R{b)X3QYR%lD3_aI4j62s`W_s3lx0`+9ufIk@`w(IFmV6iVw}hIX&%5YQSiQ? JTYJO>{{!$8TiQh*z$v=Ys!_5^R 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 literal 0 HcmV?d00001 diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/spotlight.png b/Project06/CS 3505 Project 06/CS 3505 Project 06/Content/spotlight.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c3381e735d357b356577396481692b78105033 GIT binary patch literal 165242 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 literal 0 HcmV?d00001 diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/Game06.cs b/Project06/CS 3505 Project 06/CS 3505 Project 06/Game06.cs index 0a4a228..2d8fb75 100644 --- a/Project06/CS 3505 Project 06/CS 3505 Project 06/Game06.cs +++ b/Project06/CS 3505 Project 06/CS 3505 Project 06/Game06.cs @@ -21,19 +21,12 @@ namespace CS_3505_Project_06 { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; - SpriteFont font; - - IDeterministicGame deterministicGame; - TimeSpan targetTimeSpan; - Object[] playerIdentifiers = { "One", "Two", "Three", "Four" }; // Any objects will do, strings are easy to debug. - // For debugging + NetworkGame networkGame; + + ILobby lobby; + IDeterministicGame deterministicGame; - List lastPressedKeys; - bool lastButtonPressed; - Object activePlayer; - bool paused; - long lastAutoPause; // Constructor @@ -44,13 +37,9 @@ namespace CS_3505_Project_06 // Make the game object. The game is currently called 'testHarness'. + lobby = new lobbyGUI(); deterministicGame = new TestHarness(); - - // Debugging setup - - lastPressedKeys = new List(); - activePlayer = playerIdentifiers[0]; - paused = false; + networkGame = new NetworkGame(lobby, deterministicGame); } ///

@@ -63,13 +52,8 @@ namespace CS_3505_Project_06 { // Set a fixed time span of 1/60th of a second. - targetTimeSpan = new TimeSpan(166666); // In 100 nanosecond units = 16 666 600 nanoseconds IsFixedTimeStep = true; - TargetElapsedTime = targetTimeSpan; - - // Reset the game - indicate that player #1 (player 0) owns this instance of the game. - - deterministicGame.ResetGame(playerIdentifiers, playerIdentifiers[0]); + TargetElapsedTime = networkGame.TargetTimeSpan; // For debugging - reset the mouse position to the center of the window. @@ -90,10 +74,9 @@ namespace CS_3505_Project_06 spriteBatch = new SpriteBatch(GraphicsDevice); - // Let the game load its content. - - font = Content.Load("InstructionFont"); + networkGame.font = Content.Load("InstructionFont"); + lobby.LoadContent(Content, graphics); deterministicGame.LoadContent(Content); } @@ -103,6 +86,7 @@ namespace CS_3505_Project_06 /// protected override void UnloadContent() { + lobby.UnloadContent(); deterministicGame.UnloadContent(); } @@ -113,89 +97,9 @@ namespace CS_3505_Project_06 /// Provides a snapshot of timing values. protected override void Update(GameTime gameTime) { - // Get user's input state. - - KeyboardState keyState = Keyboard.GetState(); - MouseState mouseState = Mouse.GetState(); - - // Make a list of the keys pressed or released this frame. - - List pressedKeys = new List(); - List releasedKeys = new List(); - - Keys[] pressedKeysArray = keyState.GetPressedKeys(); - foreach (Keys k in pressedKeysArray) - if (!lastPressedKeys.Contains(k)) - pressedKeys.Add(k); - else - lastPressedKeys.Remove(k); - - releasedKeys = lastPressedKeys; - lastPressedKeys = new List(pressedKeysArray); - - // Get mouse button state. - - bool buttonPressed = mouseState.LeftButton == ButtonState.Pressed; - - /***** Begining of game logic. *****/ - - // Debug - allow user to exit. - - if (pressedKeys.Contains(Keys.Escape)) - this.Exit(); - - // Debug - allow user on this machine to direct input to any player's state in the game. - - if (pressedKeys.Contains(Keys.F1)) activePlayer = playerIdentifiers[0]; - if (pressedKeys.Contains(Keys.F2)) activePlayer = playerIdentifiers[1]; - if (pressedKeys.Contains(Keys.F3)) activePlayer = playerIdentifiers[2]; - if (pressedKeys.Contains(Keys.F4)) activePlayer = playerIdentifiers[3]; - - // Debug - allow user on this machine to pause/resume game state advances. - - if (pressedKeys.Contains(Keys.F12) || - pressedKeys.Contains(Keys.P) && (keyState.IsKeyDown(Keys.LeftControl) || keyState.IsKeyDown(Keys.RightControl))) - { - paused = !paused; - return; // Don't update on pause start or stop - } - - // Debug - automatically pause every 1000 frames. - - if (deterministicGame.CurrentFrameNumber % 1000 == 0 && deterministicGame.CurrentFrameNumber != lastAutoPause) - { - paused = true; - lastAutoPause = deterministicGame.CurrentFrameNumber; - } - - // Game update - - // Direct inputs to the game engine - only report changes. - - foreach (Keys k in pressedKeys) - deterministicGame.ApplyKeyInput(activePlayer, k, true); - - foreach (Keys k in releasedKeys) - deterministicGame.ApplyKeyInput(activePlayer, k, false); - - deterministicGame.ApplyMouseLocationInput(activePlayer, mouseState.X, mouseState.Y); - - if (lastButtonPressed != buttonPressed) - deterministicGame.ApplyMouseButtonInput(activePlayer, buttonPressed); - - lastButtonPressed = buttonPressed; - - if (!paused) - { - // Advance the game engine. - - deterministicGame.Update(targetTimeSpan); - } - - /***** End of game logic. *****/ + networkGame.Update(gameTime); // Allow the superclass to do any needed updates (unknown purpose). - base.Update(gameTime); } @@ -209,18 +113,8 @@ namespace CS_3505_Project_06 spriteBatch.Begin(); - // Draw a few instructions. - - if (paused && gameTime.TotalRealTime.Milliseconds < 500) - spriteBatch.DrawString(font, "-=> Paused <=-", new Vector2(10, 130), Color.White); - - spriteBatch.DrawString(font, "Press [F1]...[F4] to simulate input for each player. Click X's to end game or terminate player.", new Vector2(10, 540), Color.White); - spriteBatch.DrawString(font, "Press [ESC] to exit and [F12] to pause/unpause. Game auto-pauses every 1000 frames.", new Vector2(10, 570), Color.White); - // Let the game draw itself. - - deterministicGame.Draw(spriteBatch); - + networkGame.Draw(gameTime, spriteBatch); spriteBatch.End(); diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/ILobby.cs b/Project06/CS 3505 Project 06/CS 3505 Project 06/ILobby.cs new file mode 100644 index 0000000..3b0f6c6 --- /dev/null +++ b/Project06/CS 3505 Project 06/CS 3505 Project 06/ILobby.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Input; +using Microsoft.Xna.Framework.Content; + +namespace CS_3505_Project_06 +{ + public interface ILobby + { + void LoadContent(ContentManager contentManager, GraphicsDeviceManager graphics); + void UnloadContent(); + long Update(GameTime gameTime, NetworkGame networkGame); + long Draw(SpriteBatch spriteBatch); + } +} diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/LobbyGUI.cs b/Project06/CS 3505 Project 06/CS 3505 Project 06/LobbyGUI.cs new file mode 100644 index 0000000..b902822 --- /dev/null +++ b/Project06/CS 3505 Project 06/CS 3505 Project 06/LobbyGUI.cs @@ -0,0 +1,297 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Xna.Framework.Content; +using Microsoft.Xna.Framework.Input; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; + +namespace CS_3505_Project_06 +{ + public class lobbyGUI : ILobby + { + float scale; + + Texture2D background; + Texture2D spotLight; + Texture2D cs; + Texture2D selectGameScreen; + + Vector2 backgroundPos; + Vector2 spotLightPos; + Vector2 spotLightCenter; + Vector2 csPos; + + Vector2 zero; + Vector2 spotLightVelocity; + + int MaxX; + int MinX; + int MaxY; + int MinY; + + Texture2D checkedBox; + Texture2D deselectBox; + Texture2D emptySelectBox; + Texture2D menuItem; + + Boolean ready; + + SpriteFont menuFont; + string selected; + Vector2 createGamePos; + string createGameText; + Vector2 findGamePos; + string findGameText; + + Vector2 returnToMainPos; + string returnToMainText; + + KeyboardState previousKeyboardState; + KeyboardState currentKeyboardState; + + private enum lobbyState + { + Welcome, + CreateGame, + FindGame, + Connected + } + + lobbyState currentState; + + public lobbyGUI() + { + currentState = lobbyState.Welcome; + } + + public void LoadContent(ContentManager contentManager, GraphicsDeviceManager graphics) + { + background = contentManager.Load("background"); + spotLight = contentManager.Load("spotlight"); + cs = contentManager.Load("cs"); + selectGameScreen = contentManager.Load("selectGameScreen"); + backgroundPos = new Vector2(0f, 0f); + spotLightPos = new Vector2(100f, graphics.GraphicsDevice.Viewport.Height - 98); + spotLightCenter = new Vector2(800f, 800f); + spotLightVelocity = new Vector2(-100, 33); + csPos = new Vector2(10f, graphics.GraphicsDevice.Viewport.Height - 98); + + zero = new Vector2(0, 0); + + MaxX = graphics.GraphicsDevice.Viewport.Width; + MinX = 0; + MaxY = graphics.GraphicsDevice.Viewport.Height; + MinY = 100; + + scale = MaxX / 1600f; + //playerlist stuff + checkedBox = contentManager.Load("checkedBox"); + deselectBox = contentManager.Load("deselectBox"); + emptySelectBox = contentManager.Load("emptySelectBox"); + menuItem = contentManager.Load("menuItem"); + + ready = false; + + //menu fonts + menuFont = contentManager.Load("menuFont"); + createGamePos = new Vector2(100f, MaxY / 3); + createGameText = "Create Game"; + selected = createGameText; + + findGamePos = new Vector2(100f, (MaxY / 3) + 60); + findGameText = "Find Game"; + + returnToMainPos = new Vector2(MaxX / 2, MaxY - 120); + returnToMainText = "press [ X ] to return to main menu"; + + + } + + public void UnloadContent() + { + + } + + public long Update(GameTime gameTime, NetworkGame networkGame) + { + UpdateSpotLight(gameTime); + currentKeyboardState = Keyboard.GetState(); + //check inputs + switch (currentState) + { + case lobbyState.Welcome: + if (selected == createGameText) + { + if (currentKeyboardState.IsKeyDown(Keys.Enter) && previousKeyboardState.IsKeyUp(Keys.Enter)) + currentState = lobbyState.CreateGame; + if (currentKeyboardState.IsKeyDown(Keys.Down)) + selected = findGameText; + } + else + { + if (currentKeyboardState.IsKeyDown(Keys.Enter) && previousKeyboardState.IsKeyUp(Keys.Enter)) + currentState = lobbyState.FindGame; + if (currentKeyboardState.IsKeyDown(Keys.Up)) + selected = createGameText; + } + break; + case lobbyState.CreateGame: + if (currentKeyboardState.IsKeyDown(Keys.X) && previousKeyboardState.IsKeyUp(Keys.X)) + { + currentState = lobbyState.Welcome; + ready = false; + } + if (currentKeyboardState.IsKeyDown(Keys.R) && previousKeyboardState.IsKeyUp(Keys.R)) + ready = true; + break; + case lobbyState.FindGame: + if (currentKeyboardState.IsKeyDown(Keys.X) && previousKeyboardState.IsKeyUp(Keys.X)) + { + currentState = lobbyState.Welcome; + ready = false; + } + + break; + case lobbyState.Connected: + if (currentKeyboardState.IsKeyDown(Keys.X) && previousKeyboardState.IsKeyUp(Keys.X)) + currentState = lobbyState.Welcome; + if (currentKeyboardState.IsKeyDown(Keys.R) && previousKeyboardState.IsKeyUp(Keys.R)) + ready = true; + break; + + } + previousKeyboardState = Keyboard.GetState(); + + return 1; + } + + /// + /// Draws the lobby GUI. Has different states for difference menu configurations + /// + public long Draw(SpriteBatch spriteBatch) + { + spriteBatch.Draw(background, backgroundPos, null, Color.White, 0, zero, scale, SpriteEffects.None, 0); + spriteBatch.Draw(cs, csPos, null, Color.White, 0, zero, 0.5f, SpriteEffects.None, 0); + spriteBatch.Draw(spotLight, spotLightPos, null, Color.White, 0, spotLightCenter, 1f, SpriteEffects.None, 0); + switch (currentState) + { + case lobbyState.Welcome: + spriteBatch.DrawString(menuFont, "press [ Home ] to login", new Vector2(350, 20), Color.LightGray, 0f, zero, .6f, SpriteEffects.None, 0.5f); + if (selected == createGameText) + spriteBatch.DrawString(menuFont, createGameText, createGamePos, Color.Red, 0, zero, 1f, SpriteEffects.None, 0.5f); + else + spriteBatch.DrawString(menuFont, createGameText, createGamePos, Color.Gray, 0, zero, 1f,SpriteEffects.None, 0.5f); + if (selected == findGameText) + spriteBatch.DrawString(menuFont, findGameText, findGamePos, Color.Red, 0, zero, 1f, SpriteEffects.None, 0.5f); + else + spriteBatch.DrawString(menuFont, findGameText, findGamePos, Color.Gray, 0, zero, 1f, SpriteEffects.None, 0.5f); + break; + + case lobbyState.CreateGame: + DrawPlayerList(spriteBatch); + + break; + case lobbyState.FindGame: + spriteBatch.Draw(selectGameScreen, backgroundPos, null, Color.White, 0, zero, scale, SpriteEffects.None, 0); + //spriteBatch.DrawString(menuFont, "Select Game", new Vector2(100, 100), Color.Gray, 0, zero, 1f, SpriteEffects.None, 0.5f); + + //spriteBatch.DrawString(menuFont, returnToMainText, returnToMainPos, Color.Gray, 0, new Vector2(180 , 0), .6f, SpriteEffects.None, 0.5f); + break; + case lobbyState.Connected: + DrawPlayerList(spriteBatch); + break; + } + + return 1; + } + + private void UpdateSpotLight(GameTime gameTime) + { + spotLightPos = new Vector2(spotLightPos.X + spotLightVelocity.X * (float)gameTime.ElapsedGameTime.TotalSeconds, + spotLightPos.Y + spotLightVelocity.Y * (float)gameTime.ElapsedGameTime.TotalSeconds); + + if (spotLightPos.X > MaxX || spotLightPos.X < MinX) //right or left wall + { + spotLightVelocity = new Vector2(spotLightVelocity.X * -1, spotLightVelocity.Y); + } + else if (spotLightPos.Y > MaxY || spotLightPos.Y < MinY) //top or bottom wall + { + spotLightVelocity = new Vector2(spotLightVelocity.X, spotLightVelocity.Y * -1); + } + } + + + private void DrawPlayerList(SpriteBatch spriteBatch) + { + + Vector2 topOfList = new Vector2(MaxX / 8, MaxY / 4); + spriteBatch.DrawString(menuFont, "Current Players", new Vector2(topOfList.X + 15, topOfList.Y - 25), Color.White); + + //top player + spriteBatch.Draw(menuItem, topOfList, null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "****Player 1****", new Vector2(topOfList.X + 10, topOfList.Y + 10), Color.White, 0f, zero, .75f, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "Ready", new Vector2(topOfList.X + 5, topOfList.Y + 45), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + if(!ready) + spriteBatch.Draw(emptySelectBox, new Vector2(topOfList.X - 32, topOfList.Y + 35), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X - 32, topOfList.Y + 30), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + spriteBatch.DrawString(menuFont, "Chat with", new Vector2(topOfList.X + 152, topOfList.Y + 45), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + Boolean chatwith = false; // change to reflect info from network, move to update and create one for each player + if (!chatwith) + spriteBatch.Draw(deselectBox, new Vector2(topOfList.X +218, topOfList.Y + 35), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X + 218, topOfList.Y + 30), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + //player 2 + spriteBatch.Draw(menuItem, new Vector2(topOfList.X, topOfList.Y + 65), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "****Player 1****", new Vector2(topOfList.X + 10, topOfList.Y + 75), Color.White, 0f, zero, .75f, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "Ready", new Vector2(topOfList.X + 5, topOfList.Y + 110), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + if (!ready) + spriteBatch.Draw(emptySelectBox, new Vector2(topOfList.X - 32, topOfList.Y + 100), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X - 32, topOfList.Y + 95), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + spriteBatch.DrawString(menuFont, "Chat with", new Vector2(topOfList.X + 152, topOfList.Y + 110), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + // change to reflect info from network + if (!chatwith) + spriteBatch.Draw(deselectBox, new Vector2(topOfList.X + 218, topOfList.Y + 100), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X + 218, topOfList.Y + 95), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + //player 3 + spriteBatch.Draw(menuItem, new Vector2(topOfList.X, topOfList.Y + 130), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "****Player 1****", new Vector2(topOfList.X + 10, topOfList.Y + 140), Color.White, 0f, zero, .75f, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "Ready", new Vector2(topOfList.X + 5, topOfList.Y + 175), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + if (!ready) + spriteBatch.Draw(emptySelectBox, new Vector2(topOfList.X - 32, topOfList.Y + 165), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X - 32, topOfList.Y + 160), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + spriteBatch.DrawString(menuFont, "Chat with", new Vector2(topOfList.X + 152, topOfList.Y + 175), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + + if (!chatwith) + spriteBatch.Draw(deselectBox, new Vector2(topOfList.X + 218, topOfList.Y + 165), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X + 218, topOfList.Y + 160), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + //player 4 + spriteBatch.Draw(menuItem, new Vector2(topOfList.X, topOfList.Y + 195), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "****Player 1****", new Vector2(topOfList.X + 10, topOfList.Y + 205), Color.White, 0f, zero, .75f, SpriteEffects.None, 1f); + spriteBatch.DrawString(menuFont, "Ready", new Vector2(topOfList.X + 5, topOfList.Y + 240), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + if (!ready) + spriteBatch.Draw(emptySelectBox, new Vector2(topOfList.X - 32, topOfList.Y + 230), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X - 32, topOfList.Y + 225), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + spriteBatch.DrawString(menuFont, "Chat with", new Vector2(topOfList.X + 152, topOfList.Y + 240), Color.DarkGray, 0f, zero, .6f, SpriteEffects.None, 1f); + if (!chatwith) + spriteBatch.Draw(deselectBox, new Vector2(topOfList.X + 218, topOfList.Y + 230), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + else + spriteBatch.Draw(checkedBox, new Vector2(topOfList.X + 218, topOfList.Y + 225), null, Color.White, 0, zero, scale, SpriteEffects.None, 1f); + + } + } +} diff --git a/Project06/CS 3505 Project 06/CS 3505 Project 06/NetworkGame.cs b/Project06/CS 3505 Project 06/CS 3505 Project 06/NetworkGame.cs new file mode 100644 index 0000000..abe36ba --- /dev/null +++ b/Project06/CS 3505 Project 06/CS 3505 Project 06/NetworkGame.cs @@ -0,0 +1,258 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Xna.Framework.Net; +using System.Diagnostics; +using Microsoft.Xna.Framework.GamerServices; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input; + +namespace CS_3505_Project_06 +{ + public class NetworkGame + { + NetworkSession mNetworkSession; + + ILobby mLobby; + IDeterministicGame mGame; + + TimeSpan mTargetTimeSpan = new TimeSpan(166666); + public TimeSpan TargetTimeSpan + { + get + { + return mTargetTimeSpan; + } + } + + List lastPressedKeys; + bool lastButtonPressed; + + Object[] playerIdentifiers = { "One", "Two", "Three", "Four" }; // Any objects will do, strings are easy to debug. + + // For debugging + + Object activePlayer; + bool paused; + long lastAutoPause; + + public SpriteFont font; + + + public NetworkGame(ILobby lobby, IDeterministicGame game) + { + Debug.Assert(lobby != null && game != null); + + mLobby = lobby; + mGame = game; + + // Begin: Test harness stuff + lastPressedKeys = new List(); + activePlayer = playerIdentifiers[0]; + paused = false; + + // Reset the game - indicate that player #1 (player 0) owns this instance of the game. + + mGame.ResetGame(playerIdentifiers, playerIdentifiers[0]); + } + + + LocalNetworkGamer LocalGamer + { + get + { + return mNetworkSession.LocalGamers[0]; + } + } + + + NetworkSession CreateSession() + { + return CreateSession(mGame.MaximumSupportedPlayers); + } + + public NetworkSession CreateSession(int maxGamers) + { + Debug.Assert(mNetworkSession == null); + + mNetworkSession = NetworkSession.Create(NetworkSessionType.SystemLink, 1, maxGamers); + mNetworkSession.AllowHostMigration = true; + mNetworkSession.AllowJoinInProgress = false; + + return mNetworkSession; + } + + + public AvailableNetworkSessionCollection FindSessions() + { + return NetworkSession.Find(NetworkSessionType.SystemLink, 1, new NetworkSessionProperties()); + } + + public NetworkSession JoinSession(AvailableNetworkSession availableSession) + { + Debug.Assert(mNetworkSession == null); + + mNetworkSession = NetworkSession.Join(availableSession); + + return mNetworkSession; + } + + + public void LeaveSession() + { + Debug.Assert(mNetworkSession != null); + + mNetworkSession.Dispose(); + mNetworkSession = null; + } + + + public void SimulateBadNetwork() + { + Debug.Assert(mNetworkSession != null); + + mNetworkSession.SimulatedLatency = new TimeSpan(0, 0, 0, 0, 200); + mNetworkSession.SimulatedPacketLoss = 0.1f; + } + + + public void Update(GameTime gameTime) + { + if (mNetworkSession == null) + { + mLobby.Update(gameTime, this); + } + else + { + mNetworkSession.Update(); + + if (mNetworkSession.SessionState == NetworkSessionState.Lobby) + { + if (mNetworkSession.IsHost && + mNetworkSession.AllGamers.Count >= mGame.MinimumSupportedPlayers && + mNetworkSession.IsEveryoneReady) + { + mNetworkSession.StartGame(); + mNetworkSession.ResetReady(); + } + else + { + mLobby.Update(gameTime, this); + } + } + else if (mNetworkSession.SessionState == NetworkSessionState.Playing) + { + // TODO: in-game update stuff + UpdateTestHarness(gameTime); + + mGame.Update(mTargetTimeSpan); + } + } + } + + public void Draw(GameTime gameTime, SpriteBatch spriteBatch) + { + mLobby.Draw(spriteBatch); + DrawTestHarness(gameTime, spriteBatch); + } + + + + + void UpdateTestHarness(GameTime gameTime) + { + // Get user's input state. + + KeyboardState keyState = Keyboard.GetState(); + MouseState mouseState = Mouse.GetState(); + + // Make a list of the keys pressed or released this frame. + + List pressedKeys = new List(); + List releasedKeys = new List(); + + Keys[] pressedKeysArray = keyState.GetPressedKeys(); + foreach (Keys k in pressedKeysArray) + if (!lastPressedKeys.Contains(k)) + pressedKeys.Add(k); + else + lastPressedKeys.Remove(k); + + releasedKeys = lastPressedKeys; + lastPressedKeys = new List(pressedKeysArray); + + // Get mouse button state. + + bool buttonPressed = mouseState.LeftButton == ButtonState.Pressed; + + /***** Begining of game logic. *****/ + + // Debug - allow user on this machine to direct input to any player's state in the game. + + if (pressedKeys.Contains(Keys.F1)) activePlayer = playerIdentifiers[0]; + if (pressedKeys.Contains(Keys.F2)) activePlayer = playerIdentifiers[1]; + if (pressedKeys.Contains(Keys.F3)) activePlayer = playerIdentifiers[2]; + if (pressedKeys.Contains(Keys.F4)) activePlayer = playerIdentifiers[3]; + + // Debug - allow user on this machine to pause/resume game state advances. + + if (pressedKeys.Contains(Keys.F12) || + pressedKeys.Contains(Keys.P) && (keyState.IsKeyDown(Keys.LeftControl) || keyState.IsKeyDown(Keys.RightControl))) + { + paused = !paused; + return; // Don't update on pause start or stop + } + + // Debug - automatically pause every 1000 frames. + + if (mGame.CurrentFrameNumber % 1000 == 0 && mGame.CurrentFrameNumber != lastAutoPause) + { + paused = true; + lastAutoPause = mGame.CurrentFrameNumber; + } + + + //if (pressedKeys.Contains(Keys.Escape)) + // this.Exit(); + + // Game update + + // Direct inputs to the game engine - only report changes. + + foreach (Keys k in pressedKeys) + mGame.ApplyKeyInput(activePlayer, k, true); + + foreach (Keys k in releasedKeys) + mGame.ApplyKeyInput(activePlayer, k, false); + + mGame.ApplyMouseLocationInput(activePlayer, mouseState.X, mouseState.Y); + + if (lastButtonPressed != buttonPressed) + mGame.ApplyMouseButtonInput(activePlayer, buttonPressed); + + lastButtonPressed = buttonPressed; + + if (!paused) + { + // Advance the game engine. + + mGame.Update(mTargetTimeSpan); + } + } + + void DrawTestHarness(GameTime gameTime, SpriteBatch spriteBatch) + { + + // BEGIN: Test harness stuff. + if (paused && gameTime.TotalRealTime.Milliseconds < 500) + spriteBatch.DrawString(font, "-=> Paused <=-", new Vector2(10, 130), Color.White); + + spriteBatch.DrawString(font, "Press [F1]...[F4] to simulate input for each player. Click X's to end game or terminate player.", new Vector2(10, 540), Color.White); + spriteBatch.DrawString(font, "Press [ESC] to exit and [F12] to pause/unpause. Game auto-pauses every 1000 frames.", new Vector2(10, 570), Color.White); + //END: Test harness stuff. + + } + } +} -- 2.45.2