JeuWeb - Crée ton jeu par navigateur
pas de poucentage dans ma barre ...? - 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 : pas de poucentage dans ma barre ...? (/showthread.php?tid=1257)

Pages : 1 2


pas de poucentage dans ma barre ...? - maitremad - 04-06-2007

bonjours j'ai un petit bug mais comme je ne suis pas le créateur de la fonction .....:toilette: je sèche ...
Code PHP :
<?php 
function barre($valeur, $max, $texte_alt="") {
$v=ceil($valeur);
$v2=$v;
$m=intval($max);

// pour du %, si on a plus de 100%, on limite à 100 pour ne pas avoir une barre de 3km de long...
// pour des barres au dela du %, remplacer 100 par $m
if ($v2>100) { $v2=100; }

if (
$v==$m && $valeur!=$m) { $v=floor($valeur); }

if (
$v==0) { // barre vide
$img1='<img src="img/barre_off_g.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img2='';
$img3='<img src="img/barre_off.gif" width="100" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img4='<img src="img/barre_off_d.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
}
// if
elseif ($v==$m || $v>$m) { // barre pleine
$img1='<img src="img/barre_on_g.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img2='<img src="img/barre_on.gif" width="'.$v2.'" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
$img3='';
$img4='<img src="img/barre_on_d.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
}
// elseif
else { // barre non pleine (et non vide)
$img1='<img src="img/barre_on_g.gif" title="'.$texte_altalt.'" alt="'.$texte_alt.'" />';
$img2='<img src="img/barre_on.gif" width="'.$v2.'" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" /><img src="img/barre_bar.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';

// portion de barre vide
$r=$m-$v2;
if (
$r>0) {
$img3='<img src="img/barre_off.gif" width="'.$r.'" height="12" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
}
// if
else { $img3=''; } // else

$img4='<img src="img/barre_off_d.gif" title="'.$texte_alt.'" alt="'.$texte_alt.'" />';
}
// else

$retval= $img1.$img2.$img3.$img4;

return
$retval;
}
// function

echo barre($hp,$hp_max,$texte_alt="Point de vie");

le hic c'est que si je met un $max de plus de 100 exemple 400 cela me donne une barre de 20 cm la moitier d'un ecran .....
quelqu'un aurrai une idée pour y remédier ....?


RE: pas de poucentage dans ma barre ...? - jo_link_noir - 05-06-2007

il faut joué avec les pourcentages
au début de ton script mes ça :

$m=intval(100);
$v=ceil($m/$valeur*100);
$v2=$v;

quoi qu'il se passe, t'as barre ferras toujours 100px au maximum


RE: pas de poucentage dans ma barre ...? - maitremad - 05-06-2007

en fait cela ne marcher pas :pleure2:
mais grace a vous j'ai tester ceci .....
Code PHP :
<?php 
$v
= ceil(100*$valeur)/$max;
$v2=$v;
$m=intval(100);
et cela fonction dans tous les sens :wowowow:
Merci :respect:


RE: pas de poucentage dans ma barre ...? - draknight - 05-06-2007

C'est censer faire quoi, tu peu nous montrés le résultat ?


RE: pas de poucentage dans ma barre ...? - maitremad - 05-06-2007

ben cela affiche une barre rouge (car mes images sont rouges ) que l'on peus ce servir comme pour afficher les résultat d'un sondage par exemple ...
Code PHP :
<?php 
$v
= ceil(100*$valeur)/$max;
$v2=$v;
$m=intval(100);
mais ici ma derniere formul ne marche que sous mozilla ......et IE m'affiche cela
Citation :Warning: Division by zero in /home/blackorbe/www/phpore/includes/common.php on line 41Warning: Division by zero in /home/blackorbe/www/phpore/includes/common.php on line 41

la ligne 41 étant celle-ci =>$v = ceil(100*$valeur)/$max;

comme toujours je comprend mais je ne connais pas les code pour divisé , multiplié ...etc ....



RE: pas de poucentage dans ma barre ...? - Caribou - 05-06-2007

Ben c'est marqué, Division by zero.. je suppose que $max=0 à ce moment là, d'ailleurs c'est pas une erreur juste un warning.

De plus je vois pas trop le rapport entre mozilla/IE et du PHP, ca c'est surement autre chose qui fait que ça marche pas sous mozilla, l'affichage de la barre j'imagine.


RE: pas de poucentage dans ma barre ...? - Nessper - 05-06-2007

ben en fait si ton $max = 0 il y a une erreur. Normal on ne peut pas faire de division par 0. Donc faut que tu fasse une condition if ($max== 0) pour reédier à ça


edit : mon message est inutile en fait, je dis la même chose que Caribou^^ Mais on a du poster en même temps. Ah le salaud il a cliqué avant moi^^


RE: pas de poucentage dans ma barre ...? - maitremad - 05-06-2007

ha ....pas mal ça ...je tente la condition alors ....
Merci !


RE: pas de poucentage dans ma barre ...? - maitremad - 05-06-2007

bon cette foie ça a l'aire d'etre bon Cool

Code :
if ($max== 0)  { $max=100; }

merci beaucoup !


RE: pas de poucentage dans ma barre ...? - Prizor - 06-06-2007

maitremad a écrit :
Code :
if ($max== 0)  { $max=100; }

En plus tu n'as pas besoin des accolades (:heuuu: bon, je sais, c'est un détail, mais c'est déjà ça... ^^ ) :
Code :
if ($max== 0)  $max=100;


PS : euh... dites-moi si je me trompes, mais dans mes souvenirs ça marchait, comme ça...