Temporisation PHP et httpRequest - PHP - Programmation
MarshPosté le 09-08-2005 à 10:43:56
Bonjour,
En fait je suis en train de développer un jeu de carte, mais j'ai un problème au moment où les deux joueurs doivent voir(pendant 5 secondes) les cartes qui ont été déposée, celle de leur adversaire, + la leur.
Voici la structure de mes scripts(avant temporisation):
-littlegame.php, qui se charge de rafraichir une page PHP(game.php) et d'en récupérer le contenu + récupérer une image(mon plateau de jeu) générée par get_picture.php et d'afficher tout ça dans un DIV.(technologie httpREQUEST).
-game.php qui est le coeur même de l'application, c'est lui qui gère l'état de la partie, par l'intermédiaire d'une série de requête SQL; il contient aussi des liens vers une fonctions javascript(write_played()) qui appelle une page PHP(write_played.php) qui gère le fait qu'une carte a été jouée ou non/ou non.
Tout marche très bien comme ça, sans temporisation mais il m'en faut une pour le jeu.
Alors ce que j'ai fait(à la fin de write_played.php)
//Si Joueur 1 a joué et joueur 2 a joué, -on attend 5 secondes, ( sleep(5); ) -on compte les points, (requète SQL) -et on supprime ces deux cartes, afin de commencer un nouveau pli.(requète SQL)
Alors, très bien, le joueur 1(J1) qui ne joue pas en deuxieme, voit pendant 5 secondes la carte jouée par J2, et ça correspond à ce qui se passe au niveau de la BDD. Par contre, J2 ne voit pas pendant 5 secondes la carte qu'il a jouée, mais en percoit les effets(au terme de 5 secondes): la carte qu'il vient de jouer et celle de son adversaire dissparaissent du plateau de jeu, et les points sont comptés.
En fait cela correspond à une situation où game.php attend un retour de write.played.php et donc de write_played() (fonction JS) avant de faire autre chose.
Comment faire pour que game.php soit contenté directement dès lors qu'on ait appelé write_played() ? Peut-être y-aurait-il une aute méthode de temporisation, plus belle ?
Marsh Posté le 09-08-2005 à 10:43:56
Bonjour,
En fait je suis en train de développer un jeu de carte, mais j'ai un problème au moment où les deux joueurs doivent voir(pendant 5 secondes) les cartes qui ont été déposée, celle de leur adversaire, + la leur.
Voici la structure de mes scripts(avant temporisation):
-littlegame.php, qui se charge de rafraichir une page PHP(game.php) et d'en récupérer le contenu + récupérer une image(mon plateau de jeu) générée par get_picture.php et d'afficher tout ça dans un DIV.(technologie httpREQUEST).
-game.php qui est le coeur même de l'application, c'est lui qui gère l'état de la partie, par l'intermédiaire d'une série de requête SQL; il contient aussi des liens vers une fonctions javascript(write_played()) qui appelle une page PHP(write_played.php) qui gère le fait qu'une carte a été jouée ou non/ou non.
Tout marche très bien comme ça, sans temporisation mais il m'en faut une pour le jeu.
Alors ce que j'ai fait(à la fin de write_played.php)
//Si Joueur 1 a joué et joueur 2 a joué,
-on attend 5 secondes, ( sleep(5); )
-on compte les points, (requète SQL)
-et on supprime ces deux cartes, afin de commencer un nouveau pli.(requète SQL)
Alors, très bien, le joueur 1(J1) qui ne joue pas en deuxieme, voit pendant 5 secondes la carte jouée par J2, et ça correspond à ce qui se passe au niveau de la BDD. Par contre, J2 ne voit pas pendant 5 secondes la carte qu'il a jouée, mais en percoit les effets(au terme de 5 secondes): la carte qu'il vient de jouer et celle de son adversaire dissparaissent du plateau de jeu, et les points sont comptés.
En fait cela correspond à une situation où game.php attend un retour de write.played.php et donc de write_played() (fonction JS) avant de faire autre chose.
Comment faire pour que game.php soit contenté directement dès lors qu'on ait appelé write_played() ?
Peut-être y-aurait-il une aute méthode de temporisation, plus belle ?
Merci beaucoup d'avance.