Bonjour bonjour,

J'espère qu'en lisant mon titre, vous allez pas direct me rire à la figure, mais bon j'ai peu d'espoir!

Alors voilà, je suis loin de tout professionnel dans le domaine, ça fait seulement plusieurs années que je me fais de l'argent de poche en créant des pages web normales et des systèmes web un peu plus poussés pour des gens (amis, parents d'amis qui ont des entreprise etc...).

Récemment je me suis lancé dans l'idée de faire un petit web-game comme on en voit tant (Creaturz, O-game, Vendetta), dans le style "rpg-stratégie" qui incorpore un système de mapping tile-set. Pour ceux qui connaissent pas, tile, c'est le mot anglais pour dire "case" et c'est tout bêtement une carte de jeu formée par un damier de plusieurs carrés (cases)...

Je l dis tout de suite, c'est juste un amuse-neurone, rien de sérieux, ni rien d'aboutit, d'ailleurs, je suis seul sur mon proj.

Comme j'aime bien aller jusqu'au bout de mes idées, j'ai créé une bibliothèques d'images de 25 par 25 px, que je classe dans une arborescence, après une upload standart en php. Depuis ma bibliothèque, je clic-glisse mes éléments pour les placer sur ma carte et je construit ainsi un décors. Chaque élément du terrain surcharge les objets "tiles" de ma carte et gèrent les choses basiques comme "la case est elle foulable ou non", et la gestion des z-index... rien de bien compliqué...

Ah oui, j'ai oublié... je me sers de php 5.1, de javascript et des utilisations dérivées du genre AJAX. Je code "bien" en JS (genre j'utilise le DOM et pas le innerHTML de MS).

Pour le moment, j'arrive sans aucun problème à avoir un perso qui se déplace (avec un path-finder) d'une case à l'autre, en respectant les cases foulables/non-foulable, ainsi que les profondeurs... (imaginez le perso qui circule sur un chemin qui passe sous un pont, puis va sur le pont...)

Mais après ça, j'ai eu un gros problème... que je n'arrive toujours pas à résoudre. Une fois que mon perso se déplace bien, je voudrais pouvoir agrémenter mon éditeur de map d'un éditeur d'évènement (PNJ qui se balade, quête qui s'active, porte qui se dévérouille etc...).

Je cherchais une solution puissantes et j'ai téléchargé/installer le logiciel RPGMAKER pour me donner des idées. Je me suis rendu compte que l'idée générale était bien la même que celle que j'avais eu, mais pour la gestion de ces évènement, le logiciel permet de scripter les occurences d'évènement que l'on place sur la carte.

Par exemple, on peut placer un PNJ (perso non joueur) et scripter des petites commandes... par ex:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<>un pas à droite
<>un pas à droite
<>un pas en bas
<>un pas en bas
on peut même aller beaucoup plus loin: poser des conditions if...elseif...else, des boucles while et autres...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<>Message:Va me ramener mon chat que j'ai perdu!
<>Proposer un choix: Ok pas de prob!, Non tu rèves!
    :Si [Ok pas de prob!] faire:
    <>Message: Merci t'es un brave!
    <>Interupteur[Quete du chat]: activé
    :Si [Non tu rèves!] faire:
    <>Message: T'es qu'un sal type!
    :Fin
Il est aussi possible d'enregistrer des variables que l'on vérifie grâce à ce genre de scripte et de faire toute sorte d'autres choses.

Dans le cas de ma petite applic, si je place l'occurence d'un évènement (enfin... ce que j'appelle un évènement) sur ma case, il me faut ensuite le scripter avec une syntaxe similaire. J'enregistre ensuite ces diverses données dans ma bdd, dont la position de l'évènement, et surtout, le script sous une forme TEXT.

Lorsque ma carte est chargée pour le jeu, je dois récupérer ce script et l'interpréter côté serveur (php) pour transmettre à ma page les différentes actions à réaliser. Mais pour ça, évidemment, bing, problème!

Ma question est donc la suivante (après tant d'explication, mais le problème est assez singulier pour justifier tout ça, d'ailleurs google n'est plus mon ami...):

Est il possible, et y a t il une solution élégante en php pour écrire une petite applic qui pourrait interpréter un code simpliste comme celui ci...?


Pour le moment il s'agit surtout de pouvoir gérer des variables "utilisateurs" et de pouvoir gérer des if/elseif/else... les boucles et toutes les petites autres subtilités viendront plus tard... ou jamais!

Désolé de vous embêter avec mes problématique hautement personnelles et merci pour les réponses s'il y en a!

A+