03-08-2010, 08:16 PM
Bonjour à tous!
Je suis actuellement sur un simple affichage d'une pseudo map. C'est de la vue classique avec des cases en forme carrée.
J'ai repris un code fournit dans le wiki en le modifiant à ma sauce. Actuellement rien ne s'affiche, page blanche, le code source m'a l'air correct.
Voici ma source: http://wiki.jeuweb.org/tutoprog/carte_hexagonale
Voici mon code, j'ai mit quelques commentaires supplémentaire aux endroits où j'ai un peu de mal:
Je suis actuellement sur un simple affichage d'une pseudo map. C'est de la vue classique avec des cases en forme carrée.
J'ai repris un code fournit dans le wiki en le modifiant à ma sauce. Actuellement rien ne s'affiche, page blanche, le code source m'a l'air correct.
Voici ma source: http://wiki.jeuweb.org/tutoprog/carte_hexagonale
Voici mon code, j'ai mit quelques commentaires supplémentaire aux endroits où j'ai un peu de mal:
Code PHP :
<?php
$bdd = new PDO('mysql:host=localhost;dbname=jeuphp1', 'user_jeuphp', 'password');
$sql = $bdd->query("SELECT * FROM perso WHERE id_perso='2'"); //Récupération des données du personnage
$perso = $sql->fetch(PDO::FETCH_ASSOC);
$sql = $bdd->query("SELECT * FROM carte,terrain WHERE x='".$perso['x']."' AND y='".$perso['y']."'"); //Récupération des données du terrain
$terrain = $sql->fetch(PDO::FETCH_ASSOC);
// On définit le tableau en fonction de la vision
$x_min = $perso['x']-$terrain['vision'];
$x_max = $perso['x']+$terrain['vision'];
$y_min = $perso['y']-$terrain['vision'];
$y_max= $perso['y']+$terrain['vision'];
// On récupère les données 'joueurs' des environs
$result = $bdd->query("SELECT * FROM perso WHERE x BETWEEN '$x_min' AND '$x_max' AND y BETWEEN '$y_min' AND '$y_max'") or die(mysql_error());
$var_carte=""; // rajouté sinon la variable est signalé comme indéfinie!!!
// On va stocker les infos de chaque joueur dans un array
while ( $data = $result->fetch(PDO::FETCH_ASSOC)) {
$joueur[$data['x']][$data['y']] = array('x'=>$data['x'],'y'=>$data['y'],'id_perso'=>$data['id_perso']);
}
$width=30; // Largeur de l'image des terrains qui permettra de décaler les images
$curent_y = -5000; // je comprends pas bien l'intérêt de ces deux lignes
$query = $bdd->query("SELECT * FROM carte,terrain WHERE x BETWEEN '$x_min' AND '$x_max' AND y BETWEEN '$y_min' AND '$y_max' ORDER BY y,x");
// On génére la map
while($carte = $query->fetch(PDO::FETCH_ASSOC)) {
if ($curent_y!=$carte['y']) { // Nouvelle ligne
$x=0;
$y++;
$curent_y = $carte['y'];
}
$x++;
$var_carte .= '<div class="case" style="top:30px;left:30px;';
$var_carte .= 'background-image: url(\'images/'.$carte['ref_terrain'].'.png\');">';
$var_carte .= '</div>';
} // fin While
echo $var_carte;
echo $perso['ref_perso']; // test bidon
$sql->closeCursor();
?>
Les endroits pas très clair pour moi sont :
Code PHP :
<?php
$width=30; // Largeur de l'image des terrains qui permettra de décaler les images
$curent_y = -5000; // je comprends pas bien l'intérêt de ces deux lignes