Générateur de cartes pour petits jeux.

Soyez le premier à donner votre avis sur cette source.

Vue 12 573 fois - Téléchargée 764 fois

Description

À l'heure où fleurissent une multitude de petits jeux sur le WEB j'ai pensé que ce "petit" exemple pourrait en éclairer certains voire en motiver d'autres :) J'ai essayé de faire un truc bien clean, autant dans la conception que dans l'écriture (j'ai mis des commentaires partout, en anglais soit dit en passant).
Allons sans plus attendre dans le vif du sujet. Tout d'abord un petit fichier XML dans lequel vous décrivez votre petit monde, case par case : type de sol souhaité, puis entités (comprendre un objet quelconque, vivant ou non). Je vous rassure on peut aussi spécifier certaines choses pour l'ensemble de la carte afin d'alléger l'écriture qui devient vite fastidieuse au fur et à mesure que vous enrichissez le décor.
Si quelqu'un est chaud il pourra nous faire un éditeur :) En attendant je vous ai mis quelques petits sprites et deux exemples simples. Et je vous laisse regarder par vous même pour le reste :)

Au niveau technos, en bref, j'ai mêlé XML, XSL, HTML et JavaScript. Etant donné que les intéractions avec ces petits mondes - ce que je n'ai pas codé - se feront en JavaScript je place cet exemple dans la catégorie JavaScript en vous encourage à poursuivre ce travail !

Le XML en exemple ci-après décrit le petit monde que vous pouvez voir dans la capture d'écran jointe. Si vous avez de voir un petit feu de camp s'animer sur la plage, ôtez les commentaires ;))

Enjoy!

PS : c'est vraiment fastoche, n'ayez pas peur :)

Source / Exemple :


<?xml version="1.0" encoding="ISO-8859-15"?>
<?xml-stylesheet type="text/xsl" href="xsl/map.xsl"?>
<map title="La mer"
     description="c'est beeeaaauuu !"
     width="15" height="15">

    <ground tile="sea"/>
<!--
    <square x="8" y="14">
        <entity id="campFire1" tile="campFire"/>
    </square>
-->
    <square x="1" y="15">
        <entity id="palm1" tile="palm"/>
    </square>

    <square x="2" y="15">
        <entity id="palm2" tile="palm"/>
    </square>

    <square x="3" y="15">
        <entity id="palm3" tile="palm"/>
    </square>

[...]

    <!-- Beach ground. -->

    <row y="10">
        <ground tile="beachWave04"/>
    </row>
    <row y="11">
        <ground tile="beachWave03"/>
    </row>
    <row y="12">
        <ground tile="beachWave02"/>
    </row>
    <row y="13">
        <ground tile="beachWave01"/>
    </row>
    <row y="14">
        <ground tile="beach02"/>
    </row>
    <row y="15">
        <ground tile="jungleBorder"/>
    </row>

</map>

Conclusion :


Grosso modo, le XML est transformé en HTML/JavaScript au moyen d'une feuille XSL. Les petites images utilisées dans le monde sont définies dans un "dictionnaire" de façon à pouvoir changer la tronche d'un monde en un rien de temps. Imaginons que vous ayez envie d'enneiger vos plaines lorsque l'hiver arrive il vous suffirait juste de bidouiller ce "dictionnaire", sympa non ? :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

voisinpi
Messages postés
10
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
1 septembre 2006

Ah ouais LOL, sous IE ça foire...
Allez savoir ! D't'façon IE c'est de la %$#@¤tûûûûût ! :-P

Braif, si y'a un motivé pour nous donner la réponse qu'il se prononce...
voisinpi
Messages postés
10
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
1 septembre 2006

Pour ce qui est de la license il faut aller voir sur le site dont l'URL se trouve dans l'archive : resources/images/chépulenom.url.
Note : le petit palmier, le sable et d'autres c'est de moi tout de même, j'suis pas un voleur ;)

Amusez-vous bien ! :-P

PS : si qqun a envie de lancer un projet plus vaste qu'il me tienne au courant ça peut m'intéresser ;)
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009

Ha bah non, c'est bon, j'ai trouvé. Suffisait d'aller voir l'URL dans le dossier ressource ...
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009

Salut,
Alors j'aime le concept :) Serieux, ça me donne des idées ... Par contre, je n'arrive pas à le faire fonctionner avec IE, mais j'ai pas non plus chercher beaucoup.
Par contre, je me demandais où tu as trouvé les images pour faire les différentes maps parce qu'elles sont sympas et si c'est GNU/GPL/Free, je m'en servirais bien ...
Voilà ! ++ !
L.S.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.