JeuWeb - Crée ton jeu par navigateur
[réglé] Apres la carte / le déplacement sur la carte - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [réglé] Apres la carte / le déplacement sur la carte (/showthread.php?tid=1368)

Pages : 1 2 3 4


RE: Apres la carte / le déplacement sur la carte - Loetheri - 26-06-2007

Euh ... Fais une direction. En fonction de la direction, tu bouges de 1.
De plus, tu devras vérifier s'il peut effectivement bouger !


RE: Apres la carte / le déplacement sur la carte - Nessper - 26-06-2007

Ajax c'est....un peu de tout. Direction wikipedia ou tout autre site, ils t'expliqueront mieux que moi ^^.
Mais je pense que tu n'en a pas besoin pour ça. Le mieux c'est que tu passes par GET (ou POST) et que tu fasses des tests, c'est tout.


RE: Apres la carte / le déplacement sur la carte - V1nc3 - 26-06-2007

GET je le ferai pas -> facilement modifiable dans l'adresse, les ptits malins trouveront un moyen de se téléporter -_-
POST a voir, le mieux serai par SESSION, je ferai un panneau d'option supplémentaire (avec des bouton type radio) pour ceux qui désactiveront javascript, et j'essaierai de mettre de l'AJAX donc.

Vais me renseigner sur la chose.


RE: Apres la carte / le déplacement sur la carte - Nessper - 27-06-2007

Mmh..franchement si tu testes bien les joueurs pourront pas tricher. T'as juste à faire ça (et à adapter)
Code PHP :
<?php 
if ( isset($_GET['x'] && is_numeric($_GET['x'] && isset($_GET['y'] && is_numeric($_GET['y'] && $_GET['bouger']==1 )
{
$req = mysql_query( "SELECT x, y FROM joueurs WHERE id='".$_SESSION['id']."'");
$row = mysql_fetch_row($req);

if ( (
$_GET['x'] == $row[0]-1 && $_GET['y'] == $row[1]-1) ||
(
$_GET['x'] == $row[0] && $_GET['y'] == $row[1]-1) ||
(
$_GET['x'] == $row[0]+1 && $_GET['y'] == $row[1]-1) ||
(
$_GET['x'] == $row[0]+1 && $_GET['y'] == $row[1]) ||
(
$_GET['x'] == $row[0]+1 && $_GET['y'] == $row[1]+1) ||
(
$_GET['x'] == $row[0] && $_GET['y'] == $row[1]+1) ||
(
$_GET['x'] == $row[0]-1 && $_GET['y'] == $row[1]+1) ||
(
$_GET['x'] == $row[0]-1 && $_GET['y'] == $row[1]) )
{
bouge($_GET['x'], $_GET['y'], $pseudo);
}
else
{
echo
"C'est pas bien de tricher.";
}
}



RE: Apres la carte / le déplacement sur la carte - NicoMSEvent - 27-06-2007

ma vision des choses :

On se déplace comme ceci : $_GET['direction']
Code PHP :
<?php 
switch($_GET['direction'])
case
'N':
//ici on reprends la position du joueur (en session, on en db, et on rajoute 1 à Y
break;
case
'S':
//ici on reprends la position du joueur (en session, on en db, et on retire 1 à Y
break;
case
'O':
//ici on reprends la position du joueur (en session, on en db, et on rajoute 1 à X
break;
case
'E':
//ici on reprends la position du joueur (en session, on en db, et on retire 1 à X
break;
default:
//direction invalide

et comme ça on ne sait pas se téléporter


RE: Apres la carte / le déplacement sur la carte - V1nc3 - 27-06-2007

Sauf qu'il faut tester aussi si la case est libre, et ajouter N-E, N-O, S-E et S-O^^

Nessper -> Faut pas oublier de fermer les parenthèses aussi ^.^


RE: Apres la carte / le déplacement sur la carte - V1nc3 - 27-06-2007

Voila ce que j'ai fais :

Dabord, pour se déplacer :

Code PHP :
<?php 
<form action=\"index.php?page=jouer\" method=\"post\">
<table class=\"bouger\">
<thead>
<th colspan=\"3\" align=\"center\">Bouger</th>
</thead>
<tr>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"N_O\" /></td>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"N\" /></td>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"N_E\" /></td>
</tr>
<tr>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"O\" /></td>
<td align=\"center\"></td>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"E\" /></td>
</tr>
<tr>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"S_O\" /></td>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"S\" /></td>
<td align=\"center\"><input type=\"radio\" name=\"bouger\" value=\"S_E\" /></td>
</tr>
<tr>
<td colspan=\"3\" align=\"center\" class=\"tableau_2\"> <input type=\"submit\" name=\"bouger_perso\" value=\"Bouger\" /></td>
</tr>
</table>
</form>

Ensuite le déplacement :

Code PHP :
<?php 
if (@$_POST['bouger_perso'])
{
mysql_connect("localhost", "root", "");
mysql_select_db("jeu_seigneur_des_anneaux");
switch(
$_POST['bouger'])
{
case
'N_O':
mysql_query("UPDATE profil_joueurs SET (coord_x = coord_x -1) AND (coord_y = coord_y +1) WHERE pseudo == '$pseudo' ");
break;
case
'N':
mysql_query("UPDATE profil_joueurs SET (coord_y = coord_y +1) WHERE pseudo = '$pseudo' ");
break;
case
'N_E':
mysql_query("UPDATE profil_joueurs SET (coord_x = coord_x +1) AND (coord_y = coord_y +1) WHERE pseudo = '$pseudo' ");
break;
case
'O':
mysql_query("UPDATE profil_joueurs SET (coord_x = coord_x -1) WHERE pseudo = '$pseudo' ");
break;
case
'E':
mysql_query("UPDATE profil_joueurs SET (coord_x = coord_x +1) WHERE pseudo = '$pseudo' ");
break;
case
'S_O':
mysql_query("UPDATE profil_joueurs SET (coord_x = coord_x -1) AND (coord_y = coord_y -1) WHERE pseudo = '$pseudo' ");
break;
case
'S':
mysql_query("UPDATE profil_joueurs SET (coord_y = coord_y -1) WHERE pseudo = '$pseudo' ");
break;
case
'S_E':
mysql_query("UPDATE profil_joueurs SET (coord_x = coord_x +1) AND (coord_y = coord_y -1) WHERE pseudo = '$pseudo' ");
break;
}
mysql_close();
}

Mais vous vous en doutez, ça ne fonctione pas -_-
Ce qui est d'autant plus bozarre, c'est quand je fais la requete dans easy php directement, il m'indique que la requete a été éxécuté, mais les coordonnées ne sont pas changées o.O


RE: Apres la carte / le déplacement sur la carte - Nessper - 27-06-2007

ouais bon t'as compris le truc quoi. J'ai fais ça en 2 2 hier soir. J'ai pas testé mais je pense que ça marche.

ps : ça prend également en compte les diagonales


RE: Apres la carte / le déplacement sur la carte - V1nc3 - 27-06-2007

Le tient oui, pas celui de Nico ^^


RE: Apres la carte / le déplacement sur la carte - Loetheri - 27-06-2007

Code PHP :
<?php 
UPDATE profil_joueurs SET
(coord_x = coord_x +1) AND (coord_y = coord_y -1) WHERE pseudo = '$pseudo'

Bizarre ce "AND" ... Enfin, bon.