Générateur de cartes à jouer

Signaler
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007
-
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007
-
Bonjour !



Je suis en train de développer un générateur de cartes à jouer, qui
affiche par exemple un 7 de carreau quand on lui demande, avec un skin
défini (arrière plan, signes, police etc..).



J'ai réfléchi à plusieurs moyens de faire ça...



D'abord, 100% avec la bibliothèque gd. Mais niveau bande passante,
c'est pas le top, vu qu'il faut en plus que j'affiche plusieurs cartes
en même temps.

(Une question sur ce point : vaut-il mieux que je génère toutes les
cartes genre 1trefle.png, 2trefle.png etc et que je pointe sur ces
images

ou que je fasse une page php carte.php et que je fasse un appel à cette
page à chaque fois qu'il me faut une carte ? p e )



Ensuite, j'ai essayé de le faire 100% en css, mais j'ai plusieurs
problèmes... déjà, j'arrive pas à retourner du texte, ca ne gérera pas
bien la transparence alpha (en fonction du navigateur)...

Finalement,
j'ai pensé à faire un mix, donc générer toutes les images qui
reviennent avec GD (genre trefle.png), fusionnées avec l'arrière plan,
pour profiter de la transparence (enfin ca je sait pas si ca marche
mais je pense), pour mettre n'importe quelle police, et pour pouvoir
retourner le texte, puis les placer en css.



Bon en fait je pense que j'ai trouvé une bonne solution, mais
j'aimerais si possible avoir quelques commentaires, comment vous
feriez...



Merci !



(bon c'est pas du 100% php, mais va parler de bibliothèque GD à celui qui fait que du css !)

9 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello,

ça dépend beaucoup de ce que tu veux en faire ensuite, de ces cartes.
C'est très faisable en css, même pour gérer la transparence, du pmoins pour IE et Firefox (qui ont tous deux leurs filtres...pour les autres navigateurs, je n'ai jamais cherché donc je ne sais pas). Mais dans ce cas ce ne seront pas des images à proprement parler.
Tout générer avec GD va effectivement prendre du temps, si tu dois génerer 54 cartes...
Après, tu peux imaginer les générer avec GD à la demande, et les garder! Et quand quelqu'un veut créer une carte qui a déjà été créée, tu la rappelles en tant qu'image plutôt que de la recréer (bref, tu les stockes). C'est très faisable, ça implique juste une bonne règle de nommage (je sais pas moi : 7_trefle_sctottishpattern_redbg_verdana.png) en fonction des possibilités que tu donnes.
Te reste juste, quand un mec demande une carte, à vérifier en fonction de ces chopis si elle existe (si il demande un 7 de carreau avec un motif tissu écossais, un background rouge et une police Verdana, tu construits la chaîne ci-dessus, et tu cherches dans ton répertoires de cartes déjà créées. Si elle n'y est pas, tu la crées, et tu la sauvegardes sous ce nom).

Le résultat est qu'au début ce sera long, et au fur et à mesure que ton application web est utilisée, ça le sera de moins en moins ;-)
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007

En fait c'est pour faire un jeu, donc il faudrait afficher toutes les
cartes de la main, soit 13 cartes, plus celles du milieu... elles
seront positionnées en CSS mais ca c'est mon problème ^^



Bah alors autant générer toutes les cartes avec des boucles en une
fois... rien de difficile à faire ca. Mais c'est au niveau de la bande
passante... enfin bon, c'est vraiment du chipotage je pense :)



Sinon la transparence alpha sur internet explorer... bah c'est un peu du bricolage ! mais bon c'est faisable.


En fait, je pense que c'est un peu la meme chose. Juste les fanatiques
du css préfereront le css + GD et d'autres la technique 100% GD...



J'arrive pas à me décider en fait ^^
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Ben justement, t'économises la bande passante avec mon petit truc.
Et ça te permet de créer de nouveaux designs facilement sans avoir à créer chaque carte basée sur ce design ensuite. Mais bon tu fais comme tu veux ;-)

C'est très faisable en css en effet. Et ce ne sera pas du bidouillage, la transparence, mais une question de filtres css propriétaires IE ou Firefox.
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007

Je comprend pas pourquoi ca prendrai moins de bande passante de générer
la carte la première fois qu'un utilisateur la demande, plutot que de
tout générer avant (une seule fois, c'est moi qui le fait, donc ca
prend pas de bande passante à l'utilisateur) puis d'afficher
directement l'image...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Je faisais référence à cette phrase
'Bah alors autant générer toutes les cartes avec des boucles en une fois... rien de difficile à faire ca. Mais c'est au niveau de la bande passante... enfin bon, c'est vraiment du chipotage je pense :)'
qui laissait penser que tu voulais faire ça en ligne, auquel cas, ton hébergeur pourraiot faire la gueule, oui, selon le nombre d'images que tu génèreras d'un coup. Alors qu'au coup par coup, c'est réparti.
Maintenant, si tu le fais en local et que tu uploades ensuite en ftp, pas de soucis.
N'empêche, un système de génération à la volée serait plus souple, pour les raisons que j'ai énoncées.
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007

Ouaip, je comprends. De toute manière, mon hébergeur (free) a une
ancienne version de php, et il ne supporte pas les fonctions comme
imagerotate et imagesavealpha donc je suis obligé de les générer
localement et de les uploader... donc c'est bon, j'ai plus de prob.



Pour info, j'ai abandonné l'idée de générer les cartes avec du css,
parceque le filtre Microsoft pour les images avec canal alpha, j'aime
bien, mais en fait j'ai tout codé sans, tout marche, et au moment de
mettre le filtre, ca fait tout bugger, alors j'ai abandonné un peu par
flemme.

Mais ca marchait impequ sur firefox etc.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Y a un filtre pour IE et un autre pour firefox hein, ce ne sont pas les mêmes :-)
MLais bon, tant que tout marche :-)
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007

Bah ya pas besoin de filtre sur firefox pour que ca gère la
transparence alpha... pitètre ca existe, mais moi ce le fait tout seul !
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007

A mon avis tu ne parle pas de la bande passante mais plutot du temps d'execution... (le processeur quoi..)

Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)