13-06-2007, 09:33 PM
Oui oui, je ferai un cas pratique en php et un autre en flash (mais pas non plus une création de map pas à pas parce que ce genre de truc ne s'adresse pas forcément à des novices) dès que j'aurai un peu de temps mais là, j'ai un boulot monstre dans mes études (plus que deux petites semaines et c'est bon)
Mais je peux déjà donner quelques pistes rapidement. Tout d'abord, il faut créer des tuiles en suivant la procédure expliquée au début du tuto, en oubliant pas de conserver sur un bout de papier la longueur d'un côté de l'hexagone de base (que tu appelleras n par la suite).
Ensuite, l'algo de placement des tuiles est relativement simple, c'est simplement deux boucles imbriquées dont la valeur de départ est 0. Dans ces deux boucles, tu calcules la position de chaque image de case en pixels et tu les insères sur le plan de jeu (dans un table ou dans des div si tu fais l'assemblage avec xhtml/css ou bien avec gd. Pour flash, si tu connais un peu le logiciel, c'est encore plus simple, tu fais un clip pour chaque tuile).
En gros, en php, ça doit donner quelque chose comme ça (non vérifié car j'ai la flemme de faire des tests. Dis moi si ça bugue) :
Mais je peux déjà donner quelques pistes rapidement. Tout d'abord, il faut créer des tuiles en suivant la procédure expliquée au début du tuto, en oubliant pas de conserver sur un bout de papier la longueur d'un côté de l'hexagone de base (que tu appelleras n par la suite).
Ensuite, l'algo de placement des tuiles est relativement simple, c'est simplement deux boucles imbriquées dont la valeur de départ est 0. Dans ces deux boucles, tu calcules la position de chaque image de case en pixels et tu les insères sur le plan de jeu (dans un table ou dans des div si tu fais l'assemblage avec xhtml/css ou bien avec gd. Pour flash, si tu connais un peu le logiciel, c'est encore plus simple, tu fais un clip pour chaque tuile).
En gros, en php, ça doit donner quelque chose comme ça (non vérifié car j'ai la flemme de faire des tests. Dis moi si ça bugue) :
Code PHP :
<?php
//Infos sur la carte
$n = 20;
$nbLignes = 3;
$nbColonnes = 4;
//On boucle pour afficher la carte
for ($i=0; $i<$nbLignes; $i++) {
for ($j=0; $j<$nbColonnes; $j++) {
$posX = $j*(sin(deg2rad(75))+sin(deg2rad(45)))*$n - ($i+ceil($j/2))*(sin(deg2rad(15)) + sin(deg2rad(75)))*$n + ($nbLignes-1)*(sin(deg2rad(15))+sin(deg2rad(75)))*$n;
$posY = ($i+ceil($j/2))*(sin(deg2rad(75))+sin(deg2rad(15)))*$n/2 + $j*sin(deg2rad(13.5))*$n;
/* ... Ici, tu places tes tuiles... */
}
}
?>
Personnellement, je trouve plus clair de créer une petite classe qui transforme proprement le numéro de la case en pixels.
@+