From 090a3dd3aa0c44d606891b4adef71afdb9a65d98 Mon Sep 17 00:00:00 2001 From: AnloGames <7383an@gmail.com> Date: Tue, 20 Aug 2024 04:03:12 +0300 Subject: [PATCH] NetworkGameStartCommit --- ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs | 5 ----- .../NetworkManager/ClientNetworkManager.cs | 7 +++++-- .../NetworkManager/ServerNetworkManager.cs | 18 ++++++++++++++++++ ZoFo/GameCore/Server.cs | 1 + 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs b/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs index 1734dbc..014e770 100644 --- a/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs +++ b/ZoFo/GameCore/GUI/WaitingForPlayersGUI.cs @@ -52,8 +52,6 @@ public class WaitingForPlayersGUI : AbstractGUI startButton.LeftButtonPressed += () => { // start - AppManager.Instance.ChangeState(GameState.HostPlaying); - AppManager.Instance.SetGUI(new HUD());//// AppManager.Instance.server.StartGame(); // ваш код здесь }; @@ -74,9 +72,6 @@ public class WaitingForPlayersGUI : AbstractGUI waitButton.LeftButtonPressed += () => { // start - AppManager.Instance.client.SendData(); - AppManager.Instance.ChangeState(GameState.ClientPlaying); - AppManager.Instance.SetGUI(new HUD()); // ваш код здесь }; Elements.Add(waitButton); diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs index 59026d2..e3eb0d9 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs @@ -13,6 +13,7 @@ using System.Threading; using System.Threading.Tasks; using ZoFo.GameCore.GameManagers.NetworkManager.Updates; using ZoFo.GameCore.GameManagers.NetworkManager.Updates.ServerToClient; +using ZoFo.GameCore.GUI; namespace ZoFo.GameCore.GameManagers.NetworkManager @@ -71,12 +72,14 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager JToken token = JToken.FromObject(jObj); JToken updateDatas = token["updateDatas"]; Datagramm Dgramm = new Datagramm(); + Dgramm.isImportant = token["isImportant"].ToObject(); + Dgramm.DatagrammId = token["DatagrammId"].ToObject(); if (PlayerId == 0) { PlayerId = token["PlayerId"].ToObject(); + AppManager.Instance.ChangeState(GameState.ClientPlaying); + AppManager.Instance.SetGUI(new HUD()); } - Dgramm.isImportant = token["isImportant"].ToObject(); - Dgramm.DatagrammId = token["DatagrammId"].ToObject(); if (Dgramm.isImportant) { if (Dgramm.DatagrammId == currentServerDatagrammId + 1) diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs index 1d5d850..40b0242 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ServerNetworkManager.cs @@ -14,6 +14,7 @@ using System.Threading; using System.Threading.Tasks; using ZoFo.GameCore.GameManagers.NetworkManager.Updates; using ZoFo.GameCore.GameManagers.NetworkManager.SerializableDTO; +using ZoFo.GameCore.GUI; namespace ZoFo.GameCore.GameManagers.NetworkManager { @@ -177,6 +178,23 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager serverThread.IsBackground = true; serverThread.Start(); } + public void StartGame() + { + for (int i = 0; i < clientsEP.Count; i++) + { + Datagramm initDgramm = new Datagramm(); + initDgramm.isImportant = true; + initDgramm.DatagrammId = currentDatagrammId; + initDgramm.PlayerId = i + 1; + sendedData.Add(initDgramm); + string data = JsonSerializer.Serialize(initDgramm); + byte[] buffer = Encoding.UTF8.GetBytes(data); + socket.SendTo(buffer, clientsEP[i]); + currentDatagrammId++; + } + AppManager.Instance.ChangeState(GameState.HostPlaying); + AppManager.Instance.SetGUI(new HUD());//// + } //Потоки Клиентов /// diff --git a/ZoFo/GameCore/Server.cs b/ZoFo/GameCore/Server.cs index c9ebf6e..176ade1 100644 --- a/ZoFo/GameCore/Server.cs +++ b/ZoFo/GameCore/Server.cs @@ -122,6 +122,7 @@ namespace ZoFo.GameCore gameObjects = new List(); entities = new List(); players = new List(); + networkManager.StartGame(); new MapManager().LoadMap(); //AppManager.Instance.server.RegisterGameObject(new EntittyForAnimationTests(new Vector2(0, 0)));