bandeau

Php

622
9

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:



<span style="color: #0000BB"><?php xml version</span><span style="color: #007700">=</span><span style="color: #DD0000">"1.0" </span><span style="color: #0000BB">?></span>
</span>
&lt;/code&gt;</code></pre>
<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"

<?php 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.
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[i][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 :)



gorgu
2006-02-02 20:19:26



jouer.orgCNIL n° 822436