JeuWeb - Crée ton jeu par navigateur
[réglé] Vie minimum a zéro - 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é] Vie minimum a zéro (/showthread.php?tid=996)

Pages : 1 2


[réglé] Vie minimum a zéro - Kassak - 30-03-2007

Bonjour a vous, alors j'ai fais ma barre de vie, ca marche nickel, le seul probleme est que ca psse dans les négatif, et je ne sais pas quoi modifier car la base est faites a partir d'un tuto, donc j'aimerais que ma barre de vie ne passe pas en dessous de zéro, si j'ia par exemple 3 pv, et que je me prend 10 de degat, ca s'arrete a zéro..

voila mon code d'affichage de la barre de vie :

Code PHP :
<?php 
$reponse
= mysql_query('SELECT * FROM membre WHERE pseudo = "'.$_SESSION['pseudo'].'" ') or die(mysql_error());
$donnees = mysql_fetch_assoc($reponse);

$HPmax = $donnees['vieMax']; // total de vie maximum du joueur
$HP = $donnees['vie']; // vie actuelle du joueur
$LargeurMax = 150; // largeur en px de votre barre à 100%

$LargeurBarreMax = $LargeurMax - 10; // on retranche les 10 px des 2 bords
$LargeurBarre = ($HP * $LargeurBarreMax) / $HPmax; // taille de la barre centrale

if ($donnees['vie'] == 0)
{
echo
'Vous êtes mort';
}

echo
'<table cellspacing="0" cellpadding="0">';
// on met le bord gauche
echo '<td background="image/rouge_bout_gauche.gif" width="5" height="10"></td>';
// la barre centrale fera la taille de notre % de vie ramené à notre largeur max
echo '<td background="image/rouge.gif" width="'.$LargeurBarre .'" height="10" ></td>';
// on met le bord droit
echo '<td background="image/rouge_bout_droit.gif" width="5" height="10"></td></table>';
echo
'Vie : '.$donnees['vie'].''?>/<? echo $donnees['vieMax'];


Merci de m'aider^^c'est gérable juste dans cette partie?


RE: Vie minimum a zéro - despe - 30-03-2007

bah un petit
Code PHP :
<?php 
if ($donnees['vie'] < 0)
$HP = 0;
else
$HP = $donnees['vie'];

tu peux aussi forcer $LargeurBarre à 0 si $donnees['vie'] est négatif


RE: Vie minimum a zéro - Kassak - 30-03-2007

Code PHP :
<?php 
$reponse
= mysql_query('SELECT * FROM membre WHERE pseudo = "'.$_SESSION['pseudo'].'" ') or die(mysql_error());
$donnees = mysql_fetch_assoc($reponse);

$HPmax = $donnees['vieMax']; // total de vie maximum du joueur
$HP = $donnees['vie']; // vie actuelle du joueur
$LargeurMax = 150; // largeur en px de votre barre à 100%

$LargeurBarreMax = $LargeurMax - 10; // on retranche les 10 px des 2 bords
$LargeurBarre = ($HP * $LargeurBarreMax) / $HPmax; // taille de la barre centrale

if ($donnees['vie'] < 0)
$HP = 0;
else
$HP = $donnees['vie'];

if (
$donnees['vie'] == 0)
{
echo
'Vous êtes mort';
}

echo
'<table cellspacing="0" cellpadding="0">';
// on met le bord gauche
echo '<td background="image/rouge_bout_gauche.gif" width="5" height="10"></td>';
// la barre centrale fera la taille de notre % de vie ramené à notre largeur max
echo '<td background="image/rouge.gif" width="'.$LargeurBarre .'" height="10" ></td>';
// on met le bord droit
echo '<td background="image/rouge_bout_droit.gif" width="5" height="10"></td></table>';
echo
'Vie : '.$donnees['vie'].''?>/<? echo $donnees['vieMax'];

Ca ne change rien, je susi a 1pv, je me perds 10 pv, je vais a -9


RE: Vie minimum a zéro - Plume - 30-03-2007

En même temps, t'as pas l'air d'avoir compris le rôle de $HP ... T'as recopier sans réfléchir, c'est d'une évidence ...

Après le code que tu as copié/collé, tu devrais p'tet remplacé tout $donnees['vie'] par $HP.

Maintenant, à toi de jouer !


RE: Vie minimum a zéro - Kassak - 30-03-2007

Je me suis en faites très mal exprimé desole, mon affichage dans le jeu marche correctement, j'ia 0pv/XXpv, mais dans la BDD ca passe en négatif quand même, il y a un moyen de remedier a ca?


RE: Vie minimum a zéro - Yoda54 - 30-03-2007

Bonsoir,

Sauf erreur de ma part, il n'y a pas d'insertion dans la base de données dans le morceau de code que tu donnes. Pour y remédier, commence par nous dévoiler un peu plus le script Smile


RE: Vie minimum a zéro - Plume - 30-03-2007

Ah ... Autant pour moi ... J'me suis p'tet un peu emporté ce coup-ci.
Cependant, fais quand même comme je t'ai dit, ça coûte rien & c'est plus mieux Smile

Comme dit Yoda, on va pas pouvoir t'aider si tu ne nous dévoiles pas tous tes secrets Tongue


RE: Vie minimum a zéro - Kassak - 30-03-2007

Des insertions?

Ben il n'y en a pas, a l'inscription, le jouer reçoit 100pv, et aprés il n'y a que des updates, par exemple celui ci, lorsque l'on marche sur du feu :

Code PHP :
<?php 
echo 'Vous avez perdu 10PV, le feu ça brûle!';
$HP = ($HP - 10);
mysql_query("UPDATE membre Set vie='$HP' WHERE pseudo='$pseudo_joueur'") or die (mysql_error());

Je ne vois pas ce que vous voulez voir de plus?


RE: Vie minimum a zéro - Plume - 30-03-2007

Ah, c'pas con. M'enfin, insertion ou update, on voulait voir & maintenant je vois.
Tu insères la valeur $HP, sans même vérifier si la valeur est négative, donc forcément va y avoir un moment où ça va passer en dessous de 0 Wink Donc à toi de vérifier la `validité` de $HP avant l'insertion ^^


RE: Vie minimum a zéro - Kassak - 30-03-2007

Code PHP :
<?php 
if ($dirx==6 && $diry==0){
echo
'Vous avez perdu 10PV, le feu ça brûle!';
$HP = ($HP - 60);
}
if (
$HP >0 ) {
mysql_query("UPDATE membre Set vie='$HP'WHERE pseudo='$pseudo_joueur'") or die (mysql_error());
}
else{
mysql_query("UPDATE membre Set vie='0'WHERE pseudo='$pseudo_joueur'") or die (mysql_error());
}

Voila avec ca ca marche, en faites c'est vraiment simple, je n'ia juste pas assez de..de..de je trouve pas le mot Oo, enfin je n'arrive pas vraiment a trouver la solution a un problème seul, meme si c'est vraiment simpliste!

En tout cas merciWink