Bonjour, je viens ici pour obtenir des renseignements, en effet je souhaiterais créer une sorte de map.
Seul problème je ne sais pas exactement comment m'y prendre niveau programmation.
Je voudrais créer une carte de galaxie qui comprend:
Au total 3.000 planètes.
Qui seront répartis en 500 systèmes solaire.
Chaque système solaire comprendra 4 à 8 planetes max.
La carte sera un damier de 32cases x 32 cases.
Chaque case aura une coordonnée ( exemple: cqfd56)
Les cases seront soit "espace" soit "planete".
Je pensais faire un système de coordonnées X et Y. Mais je n'ai jamais fait ça et je souhaiterais obtenir des conseils.
Cordialement,
ben il va falloir que tu stockes dans une table toute les indications de tes coordonnées.
exemple :
00 | 01 | 02 | 03 | 04
10 | 11 | 12 | 13 | 14
20 | 21 | 22 | 23 | 24
30 | 31 | 32 | 33 | 34
40 | 41 | 42 | 43 | 44
il va falloir que tu dise en bdd :
id: 1, pos_x: 0, pos_y: 0, type: "space" // correspond a 00
id: 2, pos_x: 1, pos_y: 0, type: "space" // correspond a 01
id: 3, pos_x: 2, pos_y: 0, type: "planet" // correspond a 02
[etc]
ensuite tu fait arranges tes résultats pour avoir un tableau multiDimensionnel qui va ressembler a ca :
$space = array(
0 => array(0 => 'space', 1 => 'space', 2 => 'planet', 3 => 'space', 4 => 'space'),
1 => array(0 => 'space', 1 => 'space', 2 => 'space', 3 => 'space', 4 => 'space'),
2 => array(0 => 'space', 1 => 'planet', 2 => 'space', 3 => 'space', 4 => 'space'),
3 => array(0 => 'space', 1 => 'space', 2 => 'space', 3 => 'planet', 4 => 'space'),
4 => array(0 => 'space', 1 => 'space', 2 => 'space', 3 => 'space', 4 => 'planet'),
);
et t'as plus qu'a boucler sur tes elements :
foreach($space as $y => $ar_y){ // on commence par les Y pour traiter ligne par ligne
foreach($ar_y as $x => $type){ // et on traite les X de gauche a droite
//quand Y = 0 et x = 0 c'est que ca correspond a ton id 1 de bdd. ($type te dira d'ailleur si t'es en space ou en planet)
}
}
compris ?
Salut,
J'ai du mal à comprendre 2 choses, ça ne correspond pas.
1)
Si tu veux qu'un damier contienne 3000 planètes, tu peux en utiliser un de 64*64 (pour rester dans les puissances de 2)
2)
Alors, une case aura une seule coordonnées ou 2 ?
(je dirai que ça serait mieux de garder ça sous forme d'une seule coordonnée à ranger dans une seule colonne en base de données, comme ça on pourra faire une requète avec un ORDER pour avoir les coordonnées dans l'ordre pour "afficher" la map).
Est-ce que ça veut dire que tu va devoir tout rentrer à la main dans une base de données ?
Si oui, bon courage, ça va être un peu long, mais j'espère que ça en vaudra la peine.
Je ne suis pas sur d'avoir bien compris mais moi ce que j'aurai vu c'est une immense table "map" en base de données avec les champs :
system
représentant :
// Ensuite en PHP tu récupère tout dans une requête,
$res = resultat de la requête SQL SELECT toutes les cases
echo '<div id="map">';
//et dans une boucle tu affiche un span avec les classes : "case" ET ("type1" OU "type0")
echo '<span class="case type' . $res->planet . '"></span>
echo '</div>';
et dans le CSS :
#map {
width: 2048px;
height: 2048px;
}
.case {
display: inline-block;
width: 32px;
height: 32px;
}
.type1 {
background-image: url("img/planet.jpg");
}
.type0 {
background-color: black;
}
Tu as un exemple de carte intéractive sur W3school
sinon tu peux regarder la carte de France sur le site du boncoin
j'avoue n'avoir jamais testé une map avec 900 area
ah ouais d'accord... Puré c'est du boulot !
Aller renseigner 3000 "coords" sur une image c'est chaud.
Alors je suis ravi de voir autant de réponses.
Pour répondre au post 1: Non je n'ai pas tout compris.
pour le 2: Oui les idées sont bonnes car je ne sais pas comment m'y prendre alors toutes idées intéressante est bonne à prendre.
Pour le reste les exemples cité ne sont pas ceux que je vise^^ et le dernier oui est toujours aussi bluffant mais je ne vise pas si haut.
Ensuite non rentrer tout à la main serrait beaucoup trop lon, je pense que j'essaierais de faire un script en php qui me créer tout.
Et la carte fait 32x32 mais elle peut oui faire 64x64. Enfaite chaque système solaire ne sera pas affiché. il faudra choisir celui que l'on veut voir.
Bonjour, je remet ce post au goût du jour, car maintenant j'en suis la et je n'ai toujours pas trouvé comment faire. Auparavant un développeur est passé me filer un coup de main, mais celui-ci n'est pas resté longtemps sur le projet et à quand même eu le temps de me faire la galaxie.(Mais nous ne sommes plus en contact, il ne peut donc pas m'expliquer le fonctionnement de son code)
Donc j'ai une galaxie en BDD comme je voulais seul problème son affichage bug, et je ne connais pas encore le JS. je me retrouve donc dans l'obligation de refaire la galaxie, ne sachant pas lire son code.
J'ai donc ma table en base de donnée que voici:
(je passe les id_joueur etc...)
ID (Auto Incré) - coordonnée X - coordonnée Y - numéro système solaire
j'ai également 3 fichiers php et deux JS.
j'aimerais donc savoir comment faire graphiquement la map, je pense que ca va etre compliqué et qu'il va falloir reprendre toute cette galaxie a zéro. Qu'en pensez vous?
Cordialement,Malibx
Edit: voici le rendu final qu'il devait y avoir: http://hpics.li/b3e83f9