khalad
Nouveau membre
Bonjour,
je cherche à développer, a des fins personnelles et comme exercice d'entraînement, une carte un peu comme Travian (jeu par navigateur)... J'ai réussi à développer en PHP un petit script qui développe dynamiquement une zone autour de coordonnées fournis par un autre script.
PHP:
[cpp]$sql = "SELECT * FROM planete WHERE pseudo = 'khalad'";
$recup=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$fetch = mysql_fetch_assoc($recup);
if(empty($_POST['largeur'])) { $posx = $fetch['l']; } else { $posx=$_POST['largeur']; }
if(empty($_POST['hauteur'])) { $posy = $fetch['h']; } else { $posy=$_POST['hauteur']; }
$compteurX = $posx - 19;
$compteurY = $posy + 14;
$finX = $posx + 19;
$finY = $posy - 14;
$debutX = $posx - 19;
while($compteurY >= $finY)
{
echo '<div class="ligneMap">
<div class="caseMapcoorY">'.$compteurY.'</div>', "\n";
while($compteurX <= $finX)
{
if($compteurX == $fetch['l'] and $compteurY == $fetch['h'])
{
echo "\t\t\t\t\t\t\t", '<div class="caseMapok">1';
echo '</div>', "\n";
}
else
{
if($compteurX == $_POST['largeur'] and $compteurY == $_POST['hauteur'])
{
echo "\t\t\t\t\t\t\t", '<div class="caseMapok2">2';
echo '</div>', "\n";
}
else
{
echo "\t\t\t\t\t\t\t", '<div class="caseMap">a';
echo '</div>', "\n";
}
}
$compteurX++;
}
echo "\t\t\t\t\t\t", '</div>', "\n";
$compteurX = $debutX;
$compteurY--;
}
mysql_close();[/cpp]
Voila alors j'ai réussi grâce a deux boucles imbriquées a développé mon quadrillage. En définissant un nombre - et + devant les coordonnées fournis j'arrive a centrer le carré dans la map histoire de montrer ou se situe l'objet. Maintenant mon problème, c'est la navigation dedans, la navigation en donnant de nouvelle coordonnées fonctionne, il m'affiche la zone, et le carré du joueur est toujours affiché s'il est dans la zone... Mais je n'arrive pas a trouver un système pour bouger la map de droit a gauche, haut bas avec des boutons allant de 2 cases en 2 cases...
autre soucis, je n'arrive pas a comprendre comment afficher l'axe X des coordonnées, j'ai trouvé pour l'axe Y...
Voila, j'espère avoir été assez clair... Je vais passer la matinée au boulot, donc je ne serais la qu'en début d'après midi. J'ai essayé d'être le plus complet possible.
Bonne journée, et merci de votre aide !
je cherche à développer, a des fins personnelles et comme exercice d'entraînement, une carte un peu comme Travian (jeu par navigateur)... J'ai réussi à développer en PHP un petit script qui développe dynamiquement une zone autour de coordonnées fournis par un autre script.
PHP:
[cpp]$sql = "SELECT * FROM planete WHERE pseudo = 'khalad'";
$recup=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$fetch = mysql_fetch_assoc($recup);
if(empty($_POST['largeur'])) { $posx = $fetch['l']; } else { $posx=$_POST['largeur']; }
if(empty($_POST['hauteur'])) { $posy = $fetch['h']; } else { $posy=$_POST['hauteur']; }
$compteurX = $posx - 19;
$compteurY = $posy + 14;
$finX = $posx + 19;
$finY = $posy - 14;
$debutX = $posx - 19;
while($compteurY >= $finY)
{
echo '<div class="ligneMap">
<div class="caseMapcoorY">'.$compteurY.'</div>', "\n";
while($compteurX <= $finX)
{
if($compteurX == $fetch['l'] and $compteurY == $fetch['h'])
{
echo "\t\t\t\t\t\t\t", '<div class="caseMapok">1';
echo '</div>', "\n";
}
else
{
if($compteurX == $_POST['largeur'] and $compteurY == $_POST['hauteur'])
{
echo "\t\t\t\t\t\t\t", '<div class="caseMapok2">2';
echo '</div>', "\n";
}
else
{
echo "\t\t\t\t\t\t\t", '<div class="caseMap">a';
echo '</div>', "\n";
}
}
$compteurX++;
}
echo "\t\t\t\t\t\t", '</div>', "\n";
$compteurX = $debutX;
$compteurY--;
}
mysql_close();[/cpp]
Voila alors j'ai réussi grâce a deux boucles imbriquées a développé mon quadrillage. En définissant un nombre - et + devant les coordonnées fournis j'arrive a centrer le carré dans la map histoire de montrer ou se situe l'objet. Maintenant mon problème, c'est la navigation dedans, la navigation en donnant de nouvelle coordonnées fonctionne, il m'affiche la zone, et le carré du joueur est toujours affiché s'il est dans la zone... Mais je n'arrive pas a trouver un système pour bouger la map de droit a gauche, haut bas avec des boutons allant de 2 cases en 2 cases...
autre soucis, je n'arrive pas a comprendre comment afficher l'axe X des coordonnées, j'ai trouvé pour l'axe Y...
Voila, j'espère avoir été assez clair... Je vais passer la matinée au boulot, donc je ne serais la qu'en début d'après midi. J'ai essayé d'être le plus complet possible.
Bonne journée, et merci de votre aide !