15-02-2007, 01:03 AM
Bonjour, alors a partir de la map de carlou, j'y est fait la mienne enfin le début, et la tout l'aprem j'ai essyé de voir d'ou venait les petites bandes qu'il y a sous chaque case de ma map.....
Si vous voulez tester : Mon site
login test
MDP test1
Si vous n'arrivez pas a vous connecter, cliquez sur deconexion et reesayez...
voici mon code :
Si vous voulez tester : Mon site
login test
MDP test1
Si vous n'arrivez pas a vous connecter, cliquez sur deconexion et reesayez...
voici mon code :
Code PHP :
<?
mysql_connect();
mysql_select_db();
$pseudo_joueur = $_SESSION['pseudo'];
//on viens chercher la position du joueur
$requete = mysql_query("SELECT avatar_joueur, posx, posy FROM membre WHERE `pseudo`='$pseudo_joueur'");
$sql = mysql_fetch_array ($requete);
$posx = $sql['posx'];
$posy = $sql['posy'];
$avatar_joueur = $sql['avatar_joueur'];
//Gestion des fleches de déplacement
if (isset($_POST['DIR']))
{
//définitions des directions
switch ($_POST['DIR']){
case "NO":
$dirx = $posx-1;
$diry = $posy-1;
break;
case "N":
$dirx = $posx;
$diry = $posy-1;
break;
case "NE":
$dirx = $posx+1;
$diry = $posy-1;
break;
case "SO":
$dirx = $posx-1;
$diry = $posy+1;
break;
case "S":
$dirx = $posx;
$diry = $posy+1;
break;
case "SE":
$dirx = $posx+1;
$diry = $posy+1;
break;
case "E":
$dirx = $posx+1;
$diry = $posy;
break;
case "O":
$dirx = $posx-1;
$diry = $posy;
break;
}
// Vérification de la présence des batiments
$sql = mysql_query('SELECT batiment, posx, posy FROM batiment WHERE posx='.$dirx.' AND posy='.$diry.' ') or die(mysql_error());
while ($data = mysql_fetch_array($sql)) {
if (empty($TabMAP[$data['posx']][$data['posy']]))
$TabMAP[$data['posx']][$data['posy']] = $data['batiment'];
}
mysql_free_result($sql);
// Vérification de la présence des autres joueurs
$sq2 = mysql_query('SELECT pseudo,posx, posy FROM membre WHERE posx='.$dirx.' AND posy='.$diry.' ') or die(mysql_error());
while ($data = mysql_fetch_array($sq2)) {
if (empty($TabMAP2[$data['posx']][$data['posy']]))
$TabMAP2[$data['posx']][$data['posy']] = $data['pseudo'];
}
mysql_free_result($sq2);
if(!empty($TabMAP[$dirx][$diry]) or !empty($TabMAP2[$dirx][$diry]) or $dirx==0 or $diry==0 or $dirx==17 or $diry==11)// si on detecte un autre joueur ou un batiment ou un bord de carte
{
echo '<font color=#ff0000>Vous ne pouvez pas vous placer ici!!</font><br><br>'."\n";//on se deplace pas
}
else {//si c'est vide
//on change de direction
$posx = $dirx;
$posy = $diry;
//et on update sa position dans la table
mysql_query("UPDATE membre Set posx='$posx', posy='$posy' WHERE `pseudo`='$pseudo_joueur'") or die (mysql_error());
}
}
//Définition de la map
$x_debut=0 ;
$x_fin=16;
$y_debut=0;
$y_fin=10;
/*
Vérification de la présence des autres joueurs:
on va chercher les joueurs qui sont dans le perimetre défini precedement.
*/
$sq2 = 'SELECT avatar_joueur,posx, posy FROM membre WHERE posx between '.$x_debut.' and '.$x_fin.' AND posy between '.$y_debut.' and '.$y_fin.' ORDER BY posx DESC,posy DESC';
$req = mysql_query($sq2) or die(mysql_error());
while ($data = mysql_fetch_array($req)) {
if (empty($TabMAP[$data['posx']][$data['posy']]))
$TabMAP[$data['posx']][$data['posy']] = $data['avatar_joueur'];
}
mysql_free_result($req);
/*
Vérification de la présence des batiments:
on va chercher les batiments qui sont dans le perimetre défini precedement.
*/
$sql = mysql_query('SELECT batiment, posx, posy FROM batiment WHERE posx between '.$x_debut.' and '.$x_fin.' AND posy between '.$y_debut.' and '.$y_fin.' ORDER BY posx DESC,posy DESC') or die(mysql_error());
while ($data = mysql_fetch_array($sql)) {
if (empty($TabMAP2[$data['posx']][$data['posy']]))
$TabMAP2[$data['posx']][$data['posy']] = $data['type_batiment'];
}
mysql_free_result($sql);
//affichage de la carte
echo '<table border="1" cellspacing="0" cellpadding="0">';
echo '<tr><td align="center" valign="middle">I</td>';
//on affiche les positions x sur la premiere ligne
for($x=$x_debut;$x<=$x_fin;$x++) echo '<td align="center" valign="middle">'.$x.'</td>'."\n";
//on affiche lignes par lignes la position y, les autres joueurs et les batiments
for ($y=$y_debut;$y<=$y_fin;$y++)
{
echo'<tr ><td align="center" valign="middle" >'.$y.'</td>'."\n";//affichage de la position
for($x=$x_debut;$x<=$x_fin;$x++) {// pour chaque lignes
if($x==$posx && $y==$posy)//si on est sur la position du joueur
echo '<td><img src=image/'.$avatar_joueur.'.gif></td>';//on affiche l'avatar de votre perso
else
if(!empty($TabMAP[$x][$y]))//si on tombe sur un autre joueur
echo '<td><img src=image/'.$TabMAP[$x][$y].'.gif></td>';//on affiche l'avatar du joueur
else
if(!empty($TabMAP2[$x][$y]))//si on tombe sur un batiment
echo '<td><img src=image/'.$TabMAP2[$x][$y].'.gif></td>';//on affiche l'image du batiment
else
echo '<td><img src="image/terrain.gif"></td>';//si il n'y a rien...
}
echo '</tr>';//on ferme la ligne et on passe a la ligne suivate
}
echo '</tbody></table>';//on ferme la table
?>
C'est quasi celui de Carlou...
En virant mon fichier CSS, j'ai quand meme les bandes, donc ca ne vient pas de la, mais du code...
Merci de m'aider^^