From 71e34a8bccddfb35f67105721fbf91aea3c4d2e6 Mon Sep 17 00:00:00 2001 From: Yvan Date: Sat, 17 Feb 2024 18:41:32 +0100 Subject: [PATCH] multiplayer en php --- Website/controllers/ControllerUser.php | 2 - Website/js/progressBar.js | 170 ++++++++++++++++++------- Website/js/progressBar.php | 19 +++ Website/js/updateProgressBar.php | 36 ++++++ Website/templates/multiplayer.twig | 58 ++------- 5 files changed, 191 insertions(+), 94 deletions(-) create mode 100644 Website/js/progressBar.php create mode 100644 Website/js/updateProgressBar.php diff --git a/Website/controllers/ControllerUser.php b/Website/controllers/ControllerUser.php index 757be52..8cfdf32 100644 --- a/Website/controllers/ControllerUser.php +++ b/Website/controllers/ControllerUser.php @@ -24,8 +24,6 @@ class ControllerUser private $twig; private $vues; - private $blazorAppPath = '..\Blazor\Blazor'; // Remplacez par le chemin réel vers votre projet Blazor - private $blazorPort = 5234; // Remplacez par le port utilisé par votre projet Blazor function __construct() { diff --git a/Website/js/progressBar.js b/Website/js/progressBar.js index ceb5234..fd8ee9c 100644 --- a/Website/js/progressBar.js +++ b/Website/js/progressBar.js @@ -1,35 +1,86 @@ import { tempsExport } from "./scriptChrono.js"; - -$(document).ready(function() { - var timerId, percent; - percent = 0; +$(document).ready(async function() { + var timerId, percent1, percent2; + percent1 = 0; + percent2 = 0; var isPaused = false; + await fetch('js/updateProgressBar.php?idplayer=1&playertime='+percent1); + await fetch('js/updateProgressBar.php?idplayer=54&playertime='+percent2); + + // reset progress bars + percent1 = 0; + percent2 = 0; + + initProgressBar('#load1', '#rocket1'); + initProgressBar('#load2', '#rocket2'); + + function initProgressBar(loadId, rocketId){ + $(loadId).css('width', '0px'); + $(loadId).addClass('progress-bar-striped active'); + $(rocketId).show(); + } + + function updateProgressBar(percent, loadId, rocketId) { + $(loadId).css('width', percent + '%'); + $(loadId).html(percent + '%'); + $(rocketId).css('left', 'calc('+percent+'% - 19px'); + } + + function resetProgressBar(loadId) { + $(loadId).css('width', '0px'); + $(loadId).addClass('progress-bar-striped active'); + $(loadId).removeClass('bg-danger'); + } + + function finishBar(loadId, rocketId, buttonId) { + $(loadId).addClass('bg-danger'); + $(buttonId).attr('disabled', true); + $(loadId).html('Finish'); + $(rocketId).hide(); + } + + async function fetchDataAndUpdate() { + if (!isPaused) { + // increment progress bars + let response = (await fetch('js/progressBar.php')); + let result = await response.text(); + let jsonData = JSON.parse(result); + + let idplayer1 = jsonData[0].idplayer; + percent1 = parseInt(jsonData[0].playertime) + 2; - // reset progress bar - percent = 0; - //$('#test').attr('disabled', true); - $('#load').css('width', '0px'); - $('#load').addClass('progress-bar-striped active'); - $('#rocket').show(); - - timerId = setInterval(function() { - if(!isPaused){ - // increment progress bar - percent += 1/12; - $('#load').css('width', percent + '%'); - $('#load').html(percent + '%'); - $('#rocket').css('left','calc('+percent+'% - 19px'); - - if(percent>= 100){ + await fetch('js/updateProgressBar.php?idplayer='+idplayer1+'&playertime='+percent1); + console.log('js/updateProgressBar.php?idplayer='+idplayer1+'&playertime='+percent1); + + updateProgressBar(percent1, '#load1', '#rocket1'); + + // Increment second progress bar + response = (await fetch('js/progressBar.php')); + result = await response.text(); + jsonData = JSON.parse(result); + + let idplayer2 = jsonData[1].idplayer; + percent2 = parseInt(jsonData[1].playertime) + 2; + + await fetch('js/updateProgressBar.php?idplayer='+idplayer2+'&playertime='+percent2); + console.log('js/updateProgressBar.php?idplayer='+idplayer2+'&playertime='+percent2); + + updateProgressBar(percent2, '#load2', '#rocket2'); + + if (percent1 >= 100 && percent2 >= 100) { clearInterval(timerId); - $('#load').removeClass('progress-bar-striped active'); - $('#load').addClass('bg-danger'); - $('#repondbien').attr('disabled', true); - $('#load').html('Finish'); - $('#rocket').hide(); + resetProgressBar('#load1'); + finishBar('#load1', '#rocket1', '#repondbien1'); + + resetProgressBar('#load2'); + finishBar('#load2', '#rocket2', '#repondbien2'); } } - }, 250); + } + + + timerId = setInterval(fetchDataAndUpdate, 2000); + function wait(ms){ var start = new Date().getTime(); @@ -39,7 +90,51 @@ $(document).ready(function() { } } - $('#repondbien').click(function() { + $('#repondbien1').click(async function() { + let response = (await fetch('js/progressBar.php')); + let result = await response.text(); + let jsonData = JSON.parse(result); + + let idplayer = jsonData[0].idplayer; + percent1 = parseInt(jsonData[0].playertime) + 20; + + await fetch('js/updateProgressBar.php?idplayer='+idplayer+'&playertime='+percent1); + + $('#repondbien1').attr('disabled', false); + resetProgressBar('#load1'); + updateProgressBar(percent1, '#load1', '#rocket1'); + }); + + $('#repondbien2').click(async function() { + let response = (await fetch('js/progressBar.php')); + let result = await response.text(); + let jsonData = JSON.parse(result); + + let idplayer = jsonData[1].idplayer; + percent2 = parseInt(jsonData[1].playertime) + 20; + + await fetch('js/updateProgressBar.php?idplayer='+idplayer+'&playertime='+percent2); + + $('#repondbien2').attr('disabled', false); + resetProgressBar('#load2'); + updateProgressBar(percent2, '#load2', '#rocket2'); + }); + + $('#repondmal').click(function() { + isPaused = true; + $('#repondmal').attr('disabled', false); + resetProgressBar('#load1'); + resetProgressBar('#load2'); + wait(3000); + console.log("test"); + isPaused = false; + }); +}); + + + + +/* if (tempsExport <= 6000) { percent += 12; } else if (tempsExport > 6000 && tempsExport <= 12000) { @@ -51,23 +146,4 @@ $(document).ready(function() { } else { percent += 8; } - $('#repondbien').attr('disabled', false); - $('#load').css('width', '0px'); - $('#load').addClass('progress-bar-striped active'); - $('#load').removeClass('bg-danger'); - $('#load').css('width', percent + '%'); - $('#load').html(percent + '%'); - - }) - - $('#repondmal').click(function() { - isPaused = true; - $('#repondmal').attr('disabled', false); - //$('#load').css('width', percent+'px'); - $('#load').addClass('progress-bar-striped active'); - $('#load').removeClass('bg-danger'); - wait(3000); - console.log("test"); - isPaused = false; - }) -}) \ No newline at end of file + */ \ No newline at end of file diff --git a/Website/js/progressBar.php b/Website/js/progressBar.php new file mode 100644 index 0000000..686a9b5 --- /dev/null +++ b/Website/js/progressBar.php @@ -0,0 +1,19 @@ + diff --git a/Website/js/updateProgressBar.php b/Website/js/updateProgressBar.php new file mode 100644 index 0000000..c3d0242 --- /dev/null +++ b/Website/js/updateProgressBar.php @@ -0,0 +1,36 @@ + $idplayerpost, + 'playertime' => $playertime +]); +curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + +// Désactivez la vérification du certificat SSL (à utiliser uniquement dans un environnement de développement) +curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + +// Exécution de la requête POST et récupération de la réponse +$response = curl_exec($curl); + +// Fermeture de la session cURL +curl_close($curl); + +// Vérification des erreurs de cURL +if ($response === false) { + die('Erreur cURL : ' . curl_error($curl)); +} + + +?> diff --git a/Website/templates/multiplayer.twig b/Website/templates/multiplayer.twig index f2b7518..52c1215 100644 --- a/Website/templates/multiplayer.twig +++ b/Website/templates/multiplayer.twig @@ -30,59 +30,27 @@
-
- -
- +
+
- {# - #} + +
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
-
- -
- -
+
+
+
+ +
+ +
+ +