From e19dad4b7d48f1324704237e3b680cb1a4d1ea67 Mon Sep 17 00:00:00 2001 From: tiendat3699 <96950844+tiendat3699@users.noreply.github.com> Date: Tue, 16 Apr 2024 15:07:01 +0700 Subject: [PATCH] feat: send data to python --- .../Scripts/MiniGame/MiniGameController.cs | 12 ++++++++++ .../GadGame/Scripts/Network/DataReceiver.cs | 22 +++++++++++++++++++ .../Scripts/State/GameState/EndGameState.cs | 1 + .../State/MainFlowState/PlayGameState.cs | 3 ++- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs b/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs index 15a6858..0a91b8a 100644 --- a/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs +++ b/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs @@ -91,7 +91,19 @@ namespace GadGame.MiniGame currentPosition.x = Mathf.Clamp(currentPosition.x, -2.25f, 2.25f); _basket.position = currentPosition; } + } + public void ReleaseAllItem() + { + foreach (var pool in _bombPools) + { + pool.Clear(); + } + + foreach (var pool in _itemPools) + { + pool.Clear(); + } } public void SetTextTime(float time) diff --git a/Assets/GadGame/Scripts/Network/DataReceiver.cs b/Assets/GadGame/Scripts/Network/DataReceiver.cs index 9df33d7..effd0a9 100644 --- a/Assets/GadGame/Scripts/Network/DataReceiver.cs +++ b/Assets/GadGame/Scripts/Network/DataReceiver.cs @@ -67,6 +67,28 @@ namespace GadGame.Network } } + public void SendDataToPython(string data) + { + try + { + string jsonData = JsonConvert.SerializeObject(data); + IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, _port); + + Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + socket.Connect(endPoint); + + // Convert string data to bytes + byte[] byteData = Encoding.UTF8.GetBytes(jsonData); + + // Send data to Python + socket.Send(byteData); + } + catch (Exception e) + { + Debug.LogError("Error sending data to Python: " + e.Message); + } + } + void OnDestroy() { _receiving = false; diff --git a/Assets/GadGame/Scripts/State/GameState/EndGameState.cs b/Assets/GadGame/Scripts/State/GameState/EndGameState.cs index 2810f5e..82451a1 100644 --- a/Assets/GadGame/Scripts/State/GameState/EndGameState.cs +++ b/Assets/GadGame/Scripts/State/GameState/EndGameState.cs @@ -10,6 +10,7 @@ namespace GadGame.State.GameState public override async void Enter() { Debug.Log("End Game"); + Runner.ReleaseAllItem(); await UniTask.Delay(3000); GameManager.Instance.EndGame(); } diff --git a/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs b/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs index c16a712..1eb1c37 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs @@ -12,6 +12,7 @@ namespace GadGame.State.MainFlowState public override async void Enter() { + DataReceiver.Instance.SendDataToPython("{playingGame: true}"); await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.GameScene.ScenePath); _gameManager = GameManager.Instance; _gameManager.OnEnd += OnEndGame; @@ -43,7 +44,7 @@ namespace GadGame.State.MainFlowState public override void Exit() { - + DataReceiver.Instance.SendDataToPython("{playingGame: false}"); } private void OnEndGame()