|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
Bonjour,
Je developpe actuellement un petit jeu en php et je suis tombé sur un probleme que je n'arrive pas à resoudre (que j'ai par la suite contourné mais qui me laisse perplexe). Je veux creer une image qui sera un aperçu de la carte de jeu (avec pour chaque terrain une couleur associé, les terrain et la carte etant dans la bdd). seulement voila, la creation de l'image se fait correctement... jusqu'a x=3 :s ensuite il remplit la suite de l'image par la couleur du dernier pixel qu'il a placé (il ne rentre plus jamais dans mon switch !) voici le code : Code :
![]() or il y a des terrain sur la droite qui n'apparraissent pas... pour vous donner un aperçu de la carte réélle en bas a gauche : ![]() voila, si quelqu'un sais pourquoi ça ne fontionne pas, merci a lui de pouvoir m'eclairer |
||
|
00
|
|
|
#2 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
Je crois comprendre que, à cet endroit : Code :
Concernant plus directement ton problème, j'ai l'impression que ton switch a besoin d'avoir un nom d'image du style chiffre.ext dans la BDD : si l'image n'est pas renseignée ou s'il y a plusieurs points ou si ce qui se trouve avant le point n'est pas un chiffre, alors le switch foire. [Edit] Si cela avait été moi, j'aurais donné des noms corrects à mes images, j'aurais fait une table `image` pour leur donner à chacune un identifiant numérique et j'aurais utilisé cet identifiant dans la table que tu utilises actuellement. Cela aurait au moins deux avantages : les images auraient un nom compréhensible et tu aurais directement un identifiant numérique à exploiter (besoin ni de split ni de sscanf).
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#3 |
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
merci de ta reponse, je pense que je vais déjà rajouter une table terrain afin d'avoir un identifiant numerique pour mes terrains et refaire a partir de ça.
cependant dans ma bdd (la table carte), chaque case possede un terrain (de la forme "num.gif") donc je recupere un chiffre a chaque fois, c'est pour ça que je comprend pas trop pourquoi le switch foire :s |
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Ajoute ceci à la suite de tes case :
Ainsi, nous serons fixés ^^ [Edit] Pense à appeler header() deux lignes plus haut afin d'éviter d'éventuels warnings.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#5 | ||
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
en fait j'avais déjà ajouté le default de cette façon :
Code :
je fais quelques changements/tests ce soir, je t'en dirais plus par rapport a ce que tu m'as donné |
||
|
00
|
|
|
#6 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Ahhh, s'il rentre dans le while, alors il rentre forcément dans le switch. Si tu as un case default, alors il fait forcément quelque chose.
Dans ton cas, je me dis que peut-être il ne rentre pas dans le while aussi souvent que tu le crois :/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#7 |
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
oui pour le switch c'est ce que je m'etais dis ^^
mais logiquement il rentre tout le temp dans le while aussi... c'est pour ça que je comprend pas Sil ne rentre plus dans le while cela voudrais dire que ma requete ne donne pas tout les resultats, or il continu de se deplacer sur l'image ($x et $y) pour placer la couleur avec : Code :
imagefilledrectangle ($image_carte, (($x*3)-1), (((300-($y*3))-1)), (($x*3)+1), (((300-($y*3))+1)), $color); enfin je revois ça ce soir de toute façon en esperant que cette fois je trouve un petit truc qui m'as echapé |
|
00
|
|
|
#8 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Si je puis me permettre une suggestion : sors les appels à ImageColorAllocate() de ta boucle, crée un tableau associatif $colors avec des champs nommés correctement : un champ pour chaque ImageColorAllocate() (que tu appelles donc à ce moment-là).
Dans le switch de ta boucle, copie simplement le bon champ de ton tableau associatif dans $color. Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#9 |
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
bien sur que tu peux te permettre ^^
je vais essayer |
|
00
|
|
|
#10 | ||
![]() ![]() Romain PERRUCHONArchitecte - Expert Technique Inscription : novembre 2004 Messages : 2 664 ![]() |
Bon j'ai resolu mon probleme
En fait le probleme venait de imagecolorallocate(), je viens de voir dans la doc que ça alloue une couleur pour l'image, en fait ce qui arrivait, c'est qu'au bout d'un moment, l'allocation echouée (vu que c'est une carte 101*101 ça faisait beaucoup d'allocation !). En fait elle ne s'utilise pas ainsi, il faut simplement definir ses couleurs AVANT la boucle while avec cette fonction et ensuite dans le switch affecter la bonne couleur ^^ voici le code corrigé : Code :
|
||
|
00
|
|
|
#11 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
\o/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com