Poster une réponse  Créer un sujet 
Augmentation des ressources en "temps réel"
Auteur Message
nemesis_elite
Membre


Messages : 270
Groupe : Membre
Inscription : Aug 2006
Statut : En ligne
Réputation : 11
Message : #1
:siffle:  Augmentation des ressources en "temps réel"

Bonjour les jeuPHPiens,

En lisant le titre, vous avez du vous dire :
"Encore un tuto sur les ressources en temps réel !"

Et bien, oui. Dans ce tuto, je vais vous expliquer comment réaliser un script qui permet d'afficher des ressources ( jusqu'ici pas compliqué, si ?) qui augmentent en temps réel, donc plus besoin de rafraichir la page.
L'avantage de la méthode que je vais vous présenter est que l'on utilise pas AJAX, le script est donc très simple.


Script de base

Tout d'abord, on récupère les ressources du joueur, et le nombre de ressources que produit son usine, et le timestamp de la dernière mise à jour des ressources.
Je pense que cela vous savez le faire, donc pour faire un script simple qui marche sans bdd, on va directement mettre :

Code PHP :
// Initialisation des variables
$iRessourcesDepart 100// le joueur possède au départ 100 unités de bois par exemple
$iProductionParSeconde 1// Sa menuiserie produit 1 bout de bois par seconde
$iTempsDerniereModif time() - (60); // On va dire que la dernière mise à jour a été effectué il y a 2 min. 


Ensuite, on calcule le nombre de secondes écoulées depuis la dernière mise à jour :

Code PHP :
$iTempsActuel time();
$iTempsEcoule $iTempsActuel $iTempsDerniereModif //  Dans notre exemple, ce sera 2 min soit 2*60 = .... 120 s (^^) 


Puis nous calculons le nombre de ressources produites durant le temps écoulé et on le met a jour dans la bdd.:

Code PHP :
$iRessourceProduite $iProductionParSeconde $iTempsEcoule;

$iRessourceTotale $iRessourcesDepart $iRessourceProduite;

// Mise a jour dans la bdd
//[...] 


Voila jusqu'ici c'était une gestion de ressources simple.

Script javascript qui permet le "temps réel"

Tout d'abord, on créé un page html toute simple qui affiche le nombre de ressource que le joueur possède :

Code PHP :
<html>
<
head>
</
head>
<
body>
   <
p>Votre menuiserie à produit <span id="ressource"><?php echo $iRessourceTotale?></span> morceaux de bois.</p>
</body>
</html> 


On va maintenant attaquer le tout petit script javascript entre les balise head. On initialise les variables :

Code PHP :
<script type="text/javascript">
var 
iRessourcesDepart = <?php echo $iRessourceTotale?>
var iProductionParSeconde = <?php echo $iProductionParSeconde?>;
var iSecondes = 0; 

On créé la fonction augentation_ressource() :

Code PHP :
function augmentation_ressource(){
   
document.getElementById("ressource").innerHTML iRessourcesDepart+(iProductionParSeconde*iSecondes); 
   
iSecondes++;
   
setTimeout("augmentation_ressource()",1000);


Enfin pour que la fonction augmentation_ressource() débute, on l'appelle dans la balise body :

Code PHP :
<body onload="augmentation_ressource()"


Script final

Code PHP :
<?php
// Initialisation des variables
$iRessourcesDepart 100// le joueur possède au départ 100 unités de bois par exemple
$iProductionParSeconde 1// Sa menuiserie produit 1 bout de bois par seconde
$iTempsDerniereModif time() - (60); // On va dire que la dernière mise à jour a été effectué il y a 2 min. 

//on calcule le nombre de secondes écoulées depuis la dernière mise à jour
$iTempsActuel time();
$iTempsEcoule $iTempsActuel $iTempsDerniereModif //  Dans notre exemple, ce sera 2 min soit 2*60 = .... 120 s (^^)

// On calcule le nombre de ressources produites durant le temps écoulé
$iRessourceProduite $iProductionParSeconde $iTempsEcoule;

$iRessourceTotale $iRessourcesDepart $iRessourceProduite;

// Mise a jour dans la bdd
//[...]
?>
<html>
<head>
    <script type="text/javascript">
        var iRessourcesDepart = <?php echo $iRessourceTotale?>;
        var iProductionParSeconde = <?php echo $iProductionParSeconde?>;
        var iSecondes = 0;
        function augmentation_ressource(){
        
            document.getElementById("ressource").innerHTML = iRessourcesDepart+(iProductionParSeconde*iSecondes);
            iSecondes++;
            setTimeout("augmentation_ressource()",1000);
            
        }
    </script>
</head>
<body onload="augmentation_ressource()">
<p>Votre menuiserie à produit <span id="ressource"><?php echo $iRessourceTotale?></span> morceaux de bois.</p>
</body>
</html> 


Voila, c'est enfin terminé.

NemeSiS_eliTe, content de son premier tuto de prog 2



Projet en pause 2
01-20-2008 11:05 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse  Créer un sujet 

Voir une version imprimable
Envoyer ce sujet à un ami
S'abonner au sujet | Ajouter le sujet aux favoris