JeuWeb - Crée ton jeu par navigateur
[Réglé]Système de déplacement - 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é]Système de déplacement (/showthread.php?tid=1420)

Pages : 1 2 3 4


RE: Système de déplacement - Enyrian - 08-07-2007

Rho mais t'inquiète pas, j'adore me faire appeler "boulet" =D

Alors... vu l'endroit où est écrit boulet, et l'endroit où tu fais echo euh... c'est pas un peu après la génération de la map ça o0


RE: Système de déplacement - Joojo - 08-07-2007

La génération de la map est au dessus et influe en rien au script de déplacement. La map sert à faire beau c'est tout.


RE: Système de déplacement - Enyrian - 08-07-2007

Bon, à y regarder de plus près, j'ai vu quelques trucs:

Code PHP :
<?php 
elseif($mouvement == "gauche")
{
$nouvelle_position_X = $posX - 1;
if(
$nouvelle_position_X <= 0)
{
$a = mysql_query('SELECT id_case FROM map WHERE posX = "'. $nouvelle_position_X .'" AND posY = "'. $posY .'"')or die(mysql_error());
$b = mysql_fetch_array($a);
$nouvelle_id_case = $b['id_case'];
mysql_query('UPDATE map_membre SET id_case = "'. $nouvelle_id_case .'" WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
}
else
{
}
}
elseif(
$mouvement == "droite")
{
$nouvelle_position_X = $posX + 1;
if(
$nouvelle_position_X >= 10)
{
$a = mysql_query('SELECT id_case FROM map WHERE posX = "'. $nouvelle_position_X .'" AND posY = "'. $posY .'"')or die(mysql_error());
$b = mysql_fetch_array($a);
$nouvelle_id_case = $b['id_case'];
mysql_query('UPDATE map_membre SET id_case = "'. $nouvelle_id_case .'" WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
}
else
{
}
}

Dans la première condition:

if($nouvelle_position_X <= 0) n'est il pas sensé être faux ?
Parce que s'il va en case négative ou nule, ben... c'est pas bon non ?
if($nouvelle_position_X >= 10) idem ici ?


RE: Système de déplacement - Joojo - 08-07-2007

Cela bien d'être corrigé. Merci beaucoup. Sauf que le script ne fonctionne pas autant...

Haut, bas, gauche il ne se passe rien, à droite celà modifie l'id de la case ou se situe le joueur en mettant 0 qui n'existe pas....

Bon bah je vais encore chercher....


RE: Système de déplacement - Enyrian - 08-07-2007

Tu pourrais donner le code de la page entière modifiée stp ?


RE: Système de déplacement - Joojo - 08-07-2007

Le html:

[html]
<table align="center">
<tr>
<form method="post" action="map3.php">
<td></td><td><input name='mouvement' type='hidden' value='haut'><input type="submit" value="Allez au Nord" /></td><td></td>
</form>
</tr>
<tr>
<form method="post" action="map3.php">
<td><input name='mouvement' type='hidden' value='gauche'> <input type="submit" value="Allez à l'Ouest" /></td></form><td></td><form method="post" action="map3.php"><td><input name='mouvement' type='hidden' value='droite'> <input type="submit" value="Allez à l'Est" /></form></td>
</tr>
<tr>
<form method="post" action="map3.php">
<td></td><td><input name='mouvement' type='hidden' value='bas'> <input type="submit" value="Allez au Sud" /></td><td></td>
</form>
</tr>
</table>
[/html]

Code PHP :
<?php 
//si les variables existent
if(isset($_POST['mouvement']))
{
$mouvement = htmlentities($_POST['mouvement']);

//On selectionne l'id de la case ou se situe membre
$position_joueur = mysql_query('SELECT id_case FROM map_membre WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
$r_position_joueur = mysql_fetch_array($position_joueur);
$id_case = $r_position_joueur['id_case'];

//On selectionne les coodonnes de la case ou se situe le joueur
$coordonnees_case = mysql_query('SELECT posX, posY FROM map WHERE id_case = "'. $id_case .'"')or die(mysql_error());
$r_coordonnees_case = mysql_fetch_array($coordonnees_case);
$posX = $r_coordonnees_case['posX'];
$posY = $r_coordonnnes_case['posY'];

if(
$mouvement == "haut")
{
$nouvelle_position_Y = $posY - 1;
if(
$nouvelle_position_Y >= 1)
{
$a = mysql_query('SELECT id_case FROM map WHERE posX = "'. $posX .'" AND posY = "'. $nouvelle_position_Y .'"')or die(mysql_error());
$b = mysql_fetch_array($a);
$nouvelle_id_case = $b['id_case'];
mysql_query('UPDATE map_membre SET id_case = "'. $nouvelle_id_case .'" WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
}
else
{
}
}
elseif(
$mouvement == "bas")
{
$nouvelle_position_Y = $posY = 1;
if(
$nouvelle_position_Y <= 2)
{
$a = mysql_query('SELECT id_case FROM map WHERE posX = "'. $posX .'" AND posY = "'. $nouvelle_position_Y .'"')or die(mysql_error());
$b = mysql_fetch_array($a);
$nouvelle_id_case = $b['id_case'];
mysql_query('UPDATE map_membre SET id_case = "'. $nouvelle_id_case .'" WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
}
else
{
//Pouet
}
}
elseif(
$mouvement == "gauche")
{
$nouvelle_position_X = $posX - 1;
if(
$nouvelle_position_X >= 1)
{
$a = mysql_query('SELECT id_case FROM map WHERE posX = "'. $nouvelle_position_X .'" AND posY = "'. $posY .'"')or die(mysql_error());
$b = mysql_fetch_array($a);
$nouvelle_id_case = $b['id_case'];
mysql_query('UPDATE map_membre SET id_case = "'. $nouvelle_id_case .'" WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
}
else
{
}
}
elseif(
$mouvement == "droite")
{
$nouvelle_position_X = $posX + 1;
if(
$nouvelle_position_X <= 9)
{
$a = mysql_query('SELECT id_case FROM map WHERE posX = "'. $nouvelle_position_X .'" AND posY = "'. $posY .'"')or die(mysql_error());
$b = mysql_fetch_array($a);
$nouvelle_id_case = $b['id_case'];
mysql_query('UPDATE map_membre SET id_case = "'. $nouvelle_id_case .'" WHERE login_membre = "'. $_COOKIE['pseudo'] .'"')or die(mysql_error());
}
else
{
echo
'Boulet!!!!!';
}
}
else
{
}
}

Il y a aucun message d'erreur c'est vraiment embétant....


RE: Système de déplacement - Enyrian - 08-07-2007

Euh, par contre tu as mis deux fois "=" dans la même instruction:

Code PHP :
<?php 
$nouvelle_position_Y
= $posY = 1;



RE: Système de déplacement - Joojo - 08-07-2007

C'est sympa d'avoir une deuxième paire de yeux pour corriger mais ça fonctionne toujours pas. :pleure2:

edit: j'ai fais un test et ce qui fonctionne pas c'est les requêtes SQL qui sont entre les différenets conditions comme:
Code PHP :
<?php 
if($nouvelle_position_X >= 1)



RE: Système de déplacement - elazard - 08-07-2007

ben t'es sur que ta table est bien en rapport avec les requetes? t'as tous les champs etc? t'as bien mis la connection à ta base? fin ce genre de trucs anodins que j'oublie une fois sur 2


RE: Système de déplacement - Joojo - 08-07-2007

Oui sinon il y aurai des erreurs d'afficher et cela s'insérerai pas un 0 aprés avoir cliquer sur la droite sur la ligne de mon perso.

*cherche*