JeuWeb - Crée ton jeu par navigateur
Génération d'images - 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 : Génération d'images (/showthread.php?tid=4527)



Génération d'images - R-transat - 11-01-2010

Bonsoir,

Je suis en train de réfléchir sur un système de génération d'image en PHP avec GD.

Et je me pose les questions suivantes :

- Comment créer une barre de progression qui afficherai un pourcentage par rapport au compétences (je pense à des valeurs de la base de donnée) ?
- Et comment les mettre à jours lorsque le joueur améliore son personnage ?

Ou alors plus simple (pour moi) :
Le joueur augmente par exemple sa compétences santé de 5 et avant il était à 3 par exemple, donc j'afficherai 8 ?

La deuxième méthode à l'air plus simple (notamment pour moi qui commence dans les jeux par navigateur).

Edit : Par exemple en utilisant ce script ? Mais si je met 100 en valeur max et que je rajoute toujours un nombre entier ça fait pas très "pro", surtout si je met 20 en valeur max et que j'augmente de 1 à chaque fois... 25, 30, 35
Parce que je voudrais 20 point de compétences au maximum.

Et aussi je vais avoir beaucoup d'images à stocker en utilisant ce script.

Je suis tout ouïe pour vos conseils.

Cordialement,
R-transat


RE: Génération d'images - Vorkosigan - 12-01-2010

A vrai dire, ma premiere remarque a ce sujet... Tu n'en es qu'au debut de ton projet, ne te prends pas la tete avec des problemes techniques secondaires comme le compteur ou cette barre de progression. Ce sont des problemes vraiment secondaires que tu n'as pas besoin de resoudre pour creer ton jeu :
- la barre de progression, tu n'as pas besoin d'en avoir une... bien sur ca fait plus pro mais tout le monde n'en a pas. Tu peux juste afficher un chiffre style 12/20
- le compteur, tu n'en a pas besoin non plus.
Si tu veux apprendre le PHP c'est bien de se poser ces problemes... mais si tu veux faire un jeu, ce n'est pas la bonne approche. Pense au jeu lui-meme, comment il est organise, fonctionne, commence a faire des ecrans (en pur HTML avec des images)... et plus tard tu coderas.

Maintenant pour repondre a ta question sur GD... Est-ce que tu peux nous montrer ce que tu as fait pour le moment ? Pour ta barre de prorgression actuelle ne te plait pas (tu dis pas pro) ? Ce que tu veux changer ? Ca sera plus facile de t'aider comme ca.


RE: Génération d'images - Argorate - 12-01-2010

J'avoue que tu es déjà dans la conception détaillé, il faut que tu es soit en tête (soit par écrit si tu n'arrives pas a tout avoir en tête) fait une sorte de descriptif pour ton jeu. les grandes lignes quoi...

Pour ce qui est des barre de progression, il y a plusieurs manière de faire certainement, la plus simple étant sans doute a coup de div et de css (j'ai pas mal de barre de progression dans mon jeu ^^)


RE: Génération d'images - R-transat - 12-01-2010

Merci pour vos messages Wink

J'ai repris le code ici : http://www.phpcs.com/codes/GENERER-PROGRESSBAR-BARRE-PROGRESSION-FORMAT-IMAGE_50023.aspx

Et avec un get je fais un petit truc, mais c'était surtout pour voir ce qui se passait. Je ne pense pas que ça soit vraiment bien mais c'était vraiment pour tester :

Le fichier competence.php c'est celui donné sur le site qui inclue la fonction Wink
Code PHP :
<?php
//inclure la fonction
include("competence.php");

$sante = 5;
$force = 3;
//On parcours la BDD (table) on récupère la valeur du nombre de point de force (par exemple) et on l'indique dans la paramètre de la fonction generer_progressbar

//pour générer une image (c'est un exemple)
generer_progressbar(100, 10, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 1, $sante, 130, 2, "./competence_sante.png");
generer_progressbar(100, 10, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 1, $force, 130, 2, "./competence_force.png");
//pour afficher l'image (en fait il suffit de placer une balise image classique)
echo "Santé : <img src=\"./competence_sante.png\" border=\"0\" alt=\"Impossible d'afficher l'image\" /><br>\n";

echo
'Force : <img src="competence_force.png" border="0" alt=""><a href="index.php?competence=ajouter_force">+</a><br>';

if(isset(
$_GET['competence']))
{
$force++;
generer_progressbar(100, 10, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 1, $force, 130, 2, "./competence_force.png");
}
?>

Je sais que c'est pas ce qu'il faut mais c'était pour le maniment et voir si j'arrivé à mettre à jour la barre de progression.


RE: Génération d'images - Vorkosigan - 13-01-2010

Euh... je ne comprends pas le probleme. Est ce que l exemple marche ? Est ce que ton code marche ? Qu est ce que tu veux faire ?

Ce qui est certain c'est que pour appeler ce code il faut avoir sont les 3 lignes suivantes

Code :
<?php
//inclure la fonction
include("img.progressbar.php");
//pour générer une image (c'est un exemple)
générer_progressbar(300, 20, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 3, 52, 100, 2, "./test.png");
//pour afficher l'image (en fait il suffit de placer une balise image classique)
echo "<img src=\"./test.png\" border=\"0\" alt=\"Impossible d'afficher l'image\" /><br>\n";
?>
Y compris le echo a la fin, ok ?

Enfin de toutes manieres ce code est degueulasse, il faudrait generer l image a la volee mais la stocker sur le disque dur.


RE: Génération d'images - Argorate - 14-01-2010

Reprendre du code c'est pas sur que se soit le mieux pour comprendre, surtout quand je vois le pavé qu'il donne sur le lien que tu as mis, alors qu'en deux, trois lignes (hors css) c'est réglés...