From 0681d14f06e52d7d6617cd967fa051320bc5eeda Mon Sep 17 00:00:00 2001 From: AnloGames <7383an@gmail.com> Date: Fri, 18 Aug 2023 04:07:28 +0300 Subject: [PATCH] Only 2 Players Support --- DangerousD/GameCore/GameObjects/GameObject.cs | 1 + DangerousD/GameCore/Managers/AppManager.cs | 21 +++++++++++++++---- DangerousD/GameCore/Managers/GameManager.cs | 2 -- DangerousD/GameCore/Network/NetworkManager.cs | 1 - 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/DangerousD/GameCore/GameObjects/GameObject.cs b/DangerousD/GameCore/GameObjects/GameObject.cs index ceb5e5a..65bf8c9 100644 --- a/DangerousD/GameCore/GameObjects/GameObject.cs +++ b/DangerousD/GameCore/GameObjects/GameObject.cs @@ -15,6 +15,7 @@ namespace DangerousD.GameCore protected Vector2 _pos; public Vector2 Pos => _pos; public int id; + public bool isIdFromHost = false; public int Width { get; set; } public int Height { get; set; } public Rectangle Rectangle => new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height); diff --git a/DangerousD/GameCore/Managers/AppManager.cs b/DangerousD/GameCore/Managers/AppManager.cs index 49187a0..c9f5788 100644 --- a/DangerousD/GameCore/Managers/AppManager.cs +++ b/DangerousD/GameCore/Managers/AppManager.cs @@ -12,6 +12,7 @@ using MonogameLibrary.UI.Base; using DangerousD.GameCore.Managers; using DangerousD.GameCore.GameObjects.LivingEntities; using DangerousD.GameCore.GameObjects; +using System.Threading.Tasks; namespace DangerousD.GameCore { @@ -111,6 +112,8 @@ namespace DangerousD.GameCore if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) Exit(); + if (GameManager.GetPlayer1 != null) + DebugHUD.Set("Objid: ", GameManager.GetPlayer1.id.ToString()); InputManager.Update(); SoundManager.Update(); @@ -225,8 +228,15 @@ namespace DangerousD.GameCore case NetworkTaskOperationEnum.CreateEntity: break; case NetworkTaskOperationEnum.SendPosition: - LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId); - entity.SetPosition(networkTask.position); + if (networkTask.objId != GameManager.GetPlayer1.id) + { + LivingEntity entity = GameManager.livingEntities.Find(x => x.id == networkTask.objId); + entity.SetPosition(networkTask.position); + if (multiPlayerStatus == MultiPlayerStatus.Host) + { + NetworkTasks.Add(networkTask); + } + } break; case NetworkTaskOperationEnum.ChangeState: break; @@ -243,12 +253,15 @@ namespace DangerousD.GameCore } break; case NetworkTaskOperationEnum.GetClientPlayerId: - GameManager.GetPlayer1.id = networkTask.objId; + if (!GameManager.GetPlayer1.isIdFromHost) + { + GameManager.GetPlayer1.id = networkTask.objId; + GameManager.GetPlayer1.isIdFromHost = true; + } break; case NetworkTaskOperationEnum.AddConnectedPlayer: Player remoteConnectedPlayer = new Player(networkTask.position, true); remoteConnectedPlayer.id = networkTask.objId; - GameManager.players.Add(remoteConnectedPlayer); break; default: break; diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index d4363d5..693f4d7 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -99,8 +99,6 @@ namespace DangerousD.GameCore public void Update(GameTime gameTime) { - Player p = players.Find(x => x.id == 16); - if (p != null) AppManager.Instance.DebugHUD.Set("NextPlayerVelocity: ", p.velocity.ToString()); if (AppManager.Instance.NetworkTasks.Count > 0) { AppManager.Instance.NetworkManager.SendMsg(AppManager.Instance.NetworkTasks.ToList()); diff --git a/DangerousD/GameCore/Network/NetworkManager.cs b/DangerousD/GameCore/Network/NetworkManager.cs index 2d6bfc5..56ac3a1 100644 --- a/DangerousD/GameCore/Network/NetworkManager.cs +++ b/DangerousD/GameCore/Network/NetworkManager.cs @@ -152,7 +152,6 @@ namespace DangerousD.GameCore.Network else { List tasks = JsonConvert.DeserializeObject>(so.sb.ToString()); - //SendMsg(tasks, clientSocket); GetReceivingMessages(tasks); } }