JeuWeb (JeuPHP) - Crée ton jeu par navigateur

Version complète : [PHP/SQL] Système de vêtements
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Bonjour tout le monde,

Pour mon jeu j'aimerai programmer un système de vétements, je m'explique :
Le joueur commence avec son personnage en caleçon, il peut aller dans des boutiques pour s'acheter armes et armures qui s'afficheront sur son personnage afin de générer diverses combinaisons de vêtements.

Donc j'ai une première questions :
-Comment générer une image en PNG en superposant plusieurs images les unes sur les autres.

Chaque joueur possède un charset (son image découpée en 16 morceaux qui constituent les animations du joueur), la base SQL va chercher dans le dossier images et prend l'image du charset indiquée. Ainsi chaque joueur possède un champ charaset du type "skin1.png".

Donc ma deuxième question :
-Comment entrer un lien de ce type dans une entrée de la base SQL sachant que le lien généré à partir des différentes armes et armures comprendra surement tout pleins de variables. Est-ce que ça marchera ?

Merci d'avance et bonne fin d'après-midi !
Salut,

alors pour ta première question, il existe une librairie php qui permet ça: http://www.siteduzero.com/tuto-3-166-1-c...#ss_part_5
Avec ceci tu peux créer des images en superposons plusieurs images.

J'éspère que ça peut t'aider !

Jon04
Salut,

je te deconseille d'utiliser GD de php si tu a beaucoup d'utilisteurs car cela demande beaucoup de ressource, moi je reflechirais plutot a un système de superposition des images en css.

Cordialement,
Xender
Une autre méthode peut se faire via les css. Tu crée un div.body contenant un div.armor par exemple.
Le div.body à comme background ton skin1.png alors que le div.armor à comme background ton armure.

Le problème de ce système c'est que tu devra donc faire un "armorset" de 16 morceaux pour suivre les mouvements de ton personnage.
Coucou,

Dans Magdales, j'ai résolu un problème similaire, mais plus simple. Je te donne ma méthode, peut-être pourra-t-elle s'adapter à tes besoins.

Magdales dispose de batiment, représenté par une image 3D iso, un petit logo pour indiquer la religion qui le possède, et une enseigne au dessus avec un fond + le nom du batiment. Cela pourrait se résumer à un "charset" de 4 morceaux. (C'est quoi un charset ?)

Avec la bibliothèque GD, je génère l'image et je la sauvegarde avec un nom très intelligent (admirez la modestie) :
nom_image_3D_iso-logo_religion-nom_enseigne-nom_batiment-id_batiment.png

Ainsi, au premier affichage, c'est long, lourd, etc ... et sa ce sauvegarde. Ensuite, je n'ai qu'à tester si l'image existe et je l'affiche.

Les points positifs sont :
- un gain en puissance car maintenant, pas de calcul trop important, et surtout indépendant du nombre de connecté.
- Plus de gestion des images trop longues dès que j'ai un nouveau batiment.
- Possibilité de customiser UNE image d'UN batiment donné ! et pas les autres (les joueurs peuvent ainsi proposer de nouvelles bannières 34)
- Possibilité de modifier tous les dessins d'un batiment si on m'offre un graphisme mieux (on change le nom du graphisme d'origine dans la table batiment)

Le point négatif est :
- plusieurs fois le même dessin dans un répertoire à quelques détails près... (c'est pas lourd ! quelques méga dans ce répertoires c'est tout. Dans ton cas, ca sera carément plus, mais c'est des images plates ... c'est donc pas la mort.)

kéké.
(06-09-2008 10:46 AM)keke a écrit : [ -> ]Ainsi, au premier affichage, c'est long, lourd, etc ... et sa ce sauvegarde. Ensuite, je n'ai qu'à tester si l'image existe et je l'affiche.
De fait, y a plutôt intérêt à créer un cache pour les images générés dynamiquement 34

Suffit de prévoir un petit outil pour gérer le cache en cas de mise à jour des images 2 Dans tous les cas, il faut au maximum simplifier l'accès aux données en lecture dans un environnement où elles sont beaucoup utilisées (le cas de 99% des jeux php).
Salut, pour avoir déjà bossé sur la génération d'images en PHP, je te conseille d'utiliser la librairie ImageMagick plutôt que GD. Elle est très performante et permet de faire davantage de traitements que GD... Enfin ça tu t'en fous, ce qui est intéressant dans ton cas c'est que ça gère bien la superposition d'images et la transparence.
Le plus important dans tout ça c'est qu'ImageMagick est beaucoup plus rapide que GD.

Sinon, je pense aussi qu'un système de cache est indispensable.
à mon avis y a 2 stratégie

- superpose en dur: tu génères les images (si possible en les mettant en cache) comme on te le propose avec GD ou imagick; note que t'as 2 option: généré au besoin/à la volée ce qui manque; ou prégénérer toutes les combinaisons(valable seulement si le nombre de combinaison est pas exponentiel).

- superpose en composite: tu travailles en css/xhtml et tu superpose des div avec tes png transparents.
(et y a bien sur l'option mixtes des deux 1)

la meilleure option dépendant de pleins de paramètres:
- pack graphique ou pas ? (mais j'ai l'impression aujourd'hui que cette option est plus du tout à la mode)
- nombre d'option/composition possible, par rapport au nombre de joueur, par rapport au nombre d'affichage.
il y a aussi le flash, mais je doute que cela te convienne...
Pour ce cas particulier je n'aurais aucune génération d'image.
Simplement tous mes vêtements empilables avec des transparences etc.
Puis je créer la tenu en plaçant les images en CSS.

Ca me semble de loin la solution la plus simple et la plus optimale.
Pages : 1 2
URLs de référence