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:
:) 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">&lt;?php&nbsp;xml&nbsp;version</span><span style="color: #007700">=</span><span style="color: #DD0000">"1.0"&nbsp;</span><span style="color: #0000BB">?&gt;</span>
</span>
</code></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 :)
2006-02-02 20:19:26