JeuWeb - Crée ton jeu par navigateur
Comment stocker une carte? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comment stocker une carte? (/showthread.php?tid=2137)

Pages : 1 2 3


Comment stocker une carte? - joshua - 13-03-2008

Question de fond...
Qui a-t-il de mieux pour stocker une carte?
Si on prend le cas d'une carte 100*100, des idées?
  • stockage par salle?
  • stockage case après case?
  • ne stocker que les cases ou il y a quelque chose?
  • faire une table par carte (100*100)
  • tout mettre dans la même table et rajouter un champ "carte"?


Si vous avez des idées... JE me questionne lors de la réalisation de mon MCD


RE: Comment stocker une carte? - X-ZoD - 13-03-2008

moi je stock toute les table dans la meme carte et je les diferencie avec un champ "id_monde" ou un truc dans le genr
pour l'affichage je ne stock que les case ou il ya quelque chose en particulier (un decors ou une action possible), pour les reste ce sont des case basique donc pas beseoin de les stocker dans la db
et je stocke aussi par salle si besoin (en plus de l'id_monde j'aurai donc un id_salle)

Wink


RE: Comment stocker une carte? - phenix - 13-03-2008

Perso, j'utilise une méthode peut orthodoxe:

- Les villes sont diviser en quartier, chaque quartier possède une map de 24*17.

Tout les quartiers sont stocker dans des fichier sous forme de chaine de caractère que j'explode pour trouver le nom de l'image a placer.

exemple: herbe*herbe*roche1*arbre*etc.

Ensuite, 2 boucles et une fonction place les éléments sur le tableau.


RE: Comment stocker une carte? - X-ZoD - 13-03-2008

ouais .... pour ue map ce qu'il y a de plus simple ^^
mais lorque tu aura besoin d'informations propres à chaque case .... tu pense continuer a surcharger ta chaine de caractere en parsant et reparsant a la suite ?


RE: Comment stocker une carte? - Belsion - 13-03-2008

Perso, j'aurais tendance à utiliser 2 tables pour l'ensemble des cartes:
- une table statique avec les information sur le terrain ou d'autres choses qui ne bougeront jamais
- une table dynamique où je complète certaines cases avec des informations spécifiques

Après sur chaque table, j'ai les triplets {id_carte,id_x,id_y}, et les complémentaires nécessaires.


RE: Comment stocker une carte? - Cyril - 13-03-2008

Personnellement je met en clé primaire le numéro de la map
Et les coordonnées sont réinitialisées à chaque changement de map.

ex : map2 ; 1 ; 1


RE: Comment stocker une carte? - Sephi-Chan - 13-03-2008

Pour ma part je n'utilise pas de map. Comme ça c'est réglé.
Les deux fois où j'ai eu à le faire, je suis passé par XML, avec un fichier de cette forme :

Code PHP :
<?php 
<map id="1" name="Marmots' land" length="5" height="4" tileset="1">
<
structure>
<
c t="1" x="1" y="1"/>
<
c t="2" x="2" y="1"/>
<
c t="2" x="3" y="1"/>
<
c t="2" x="4" y="1"/>
<
c t="2" x="5" y="1"/>
<
c t="2" x="1" y="2"/>
<
c t="2" x="2" y="2"/>
<
c t="2" x="3" y="2"/>
<
c t="2" x="4" y="2"/>
<
c t="1" x="5" y="2"/>
<
c t="2" x="1" y="3"/>
<
c t="2" x="2" y="3"/>
<
c t="2" x="3" y="3"/>
<
c t="2" x="4" y="3"/>
<
c t="2" x="5" y="3"/>
<
c t="2" x="1" y="4"/>
<
c t="2" x="2" y="4"/>
<
c t="3" x="3" y="4"/>
<
c t="2" x="4" y="4"/>
<
c t="2" x="5" y="4"/>
</
structure>
</
map>

Bien sûr, j'ai ici économisé sur les caractères pour limiter la taille en terme d'espace disque. Avec XML on peut stocker un tas de données sur chaque case de manière simple, et c'est assez simple à manipuler, et surtout : bien plus rapide que SQL.


Sephi-Chan


RE: Comment stocker une carte? - joshua - 13-03-2008

Ouaip Séphi, mais ca marche que pour une petite carte.
Dès que tu as une grande carte ca devient plus lent qu'une base de données


RE: Comment stocker une carte? - phenix - 13-03-2008

Citation :ouais .... pour ue map ce qu'il y a de plus simple 34
mais lorque tu aura besoin d'informations propres à chaque case .... tu pense continuer a surcharger ta chaine de caractere en parsant et reparsant a la suite ?

Si tu veux des informations sur les cases, tu regarde dans la base de donnée a la position de la case Wink Le fichier ne contient que la structure de la map.


RE: Comment stocker une carte? - joshua - 13-03-2008

ok phenix, tu mets tout sur une ligne et ensuite tu decoupe ligne par ligne pour savoir ce que tu as mis... Je comprends mieux.