Accueil Annuaire Articles Liste Forum Jeux Flash Chat Adept JDR Smiles Starconnexion

Php :


Flash / PHP

Cela fait longtemps que l'on me demande un tel tuto.

et il sera difficile de rédiger un texte assez claire pour que vous puissiez copier coller je chercherais donc à vous donner les briques nécéssaires à votre projet.

Principe :

Flash permets un affichage interactif d'une carte pour illustrer nos jeux.

PHP permets de communiquer avec la base de données en toute sécurité.

XML est un modèle d'organisation de données.

L'idée est donc de créer une fichier XML avec PHP et que Flash vienne le lire pour afficher la carte vue par le joueur.

Etape 1 : PHP créer un fichier XML

le fichier xml aura une structure ressemblant à cela:


<?xml version="1.0"?>
<donnes>
<CARTE X='6' Y='388' PERSO='gorgu' P1='5' P2='0' P3='0' >
<CASE X='6' Y='8' KOI='t/m14' mon='un truc ici' h='0' def='1' hs='0'></CASE>
<CASE X='1' Y='17' KOI='t/f3n' mon='rien' h='0' def='1' hs='0'></CASE>
</CARTE>
</donnes>


il faut donc créer un fichier php qui se connectera à la base de données et fera des echo"<?xml version="1.0"?> etc etc";

fouillez dans les sources de smiles war pour avoir des éléments

x et y sont les coordonnées sur la carte
PERSO le nom du personnage connecté
P1/P2/P3 sont des paramétres que vous pourrez réutiliser comme bon vous sembles.
<case> les cases entourant votre personnage
xy
KOI la référence du sprite à afficher
mon un commentaire
vous pouvez ajouter tout se qu'il vous semble utile pour votre affichage



Etape 2 : récupérer le fichier XML dans Flash

Dans une frame, vous allez télécharger le fichier créé par php:

var fichierXML = "http://www.exemple.com/carte.php";
doc.load(fichierXML);
doc.onLoad = function(success) {
if (success) {
xmlprocessor();
} else {
debugmsg = "Pas de connexion serveur";
}
}
stop();


Etape 3 : lire le fichier XML

Il vous faudra donc la fonction xmlprocessor qui prends les valeurs du fichier xml pour les placer dans des éléments manipulables.
nous utiliseront le tableau nommé tableau (facile non?)

 tableau = [[null, null, null, null, null, null, null],
[null, null, null, null, null, null, null],
[null, null, null, null, null, null, null],
[null, null, null, null, null, null, null],
[null, null, null, null, null, null, null],
[null, null, null, null, null, null, null],
[null, null, null, null, null, null, null]];
for (i=0; i<10; i++) {
for (j=0; j<10; j++) {
tableau[j] = new lacase(i, j);
}
}


Ici nous allons lire les informations principales sur le personnage et remplir des variables.
C'est la fonction principale de lecture du fichier xml.

function xmlprocessor() {

elem = doc.firstChild;
balise1 = elem.firstChild;
USER = balise1.attributes.PERSO;
if (USER == "") {
stop();
}
cartex = parseInt(balise1.attributes.X);
cartey = parseInt(balise1.attributes.Y);
temps = parseInt(balise1.attributes.P1);
terre = parseInt(balise1.attributes.P2);
level = parseInt(balise1.attributes.P3);

CASE = balise1.firstChild;
while (CASE) {
caseur(CASE);
CASE = CASE.nextSibling;
}
// une fois la lecture terminée, passer à la frame traitant l'affichage
_root.gotoAndPlay(4);

}



Caseur permets de lire les cases et de remplir tableau


function caseur(balise) {
xx = parseInt(balise.attributes.X)+3;
yy = parseInt(balise.attributes.Y)+3;
tableau[xx][yy].KOI = balise.attributes.KOI;
if ((balise.attributes.mon !="0")and (balise.attributes.mon != "")) {
tableau[xx][yy].mon =balise.attributes.mon;
}

if (balise.attributes.def != "0") {
tableau[xx][yy].def = "0";
}
else
tableau[xx][yy].def = 1;

// ajoutez autant de traitements que vous avez de variables.
}





Etape 4 : déssinez votre carte

Libre cours à votre talent



par jouer.org
dernière mise à jour:2/02/2006

Jeux en ligne jouer.org Site declaré à la CNIL n° 822436 ~ Ajouter un site ~ Partenaires