Bonjour.
Je suis en train de réaliser une sorte de carte pour un jeux.
Voila comment fonctionne mon code :
Il y à un tableau HTML qui fais 23 colonnes et 17 lignes.
Vous pouvez voir ce tableau ici :
http://burgerkill.fr/temp/edit-map-small.htm
Le centre de cette carte correspond à la position d'un personnage. Par exemple, si ce personnage à dans la base de donnée x5,y5 alors l'image charger au milieux du tableau sera celle qui, dans la base de donnée, à pour x=5 et y=5.
C'est pourquoi on peut voir la variable $p0p0 au centre, qui signifie x plus 0 et y plus 0.
On comprends donc que la case juste au dessus, $p0m1 signifie x plus 0 et y moins 1. Si vous m'avez compris jusque là, passons au chose sérieuse.
Vous comprenez que mon script va devoir charger 23x17 images en fonction de la position initial du personnage. Sois 391 images :s
J'ai pensé à deux méthode et je voudrais savoir laquelle serais la plus légère et surtout si il n'y en à pas une plus efficace ?
/!\ Les codes sont la à titre d'exemples pour illustrer le fonctionnement, je sais qu'ils ne sont pas exacte. /!\
Voici donc la première :
- Un listing de toute la table " map " avec au total 391 if, par exemple :
Le problème avec cette méthode c'est qu'il va faire listing de toute la table, même des entré correspondante à une position x,y qui n'est pas dans le tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (($x=$x-1) and ($y=$y-1)) { $m1m1=$img; } if (($x=$x-1) and ($y=$y-2)) { $m1m2=$img; } if (($x=$x-1) and ($y=$y-3)) { $m1m3=$img; } etc ...
La deuxième méthode :
- Un listing colonne par colonne, ce qui veut dire que je ferais plusieurs listing. Par exemple :
et pour chaque listing de la table, je ferais une série de IF vérifiant la valeur de y, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $listing = mysql_query("SELECT img FROM map WHERE x=$x-1"); $listing = mysql_query("SELECT img FROM map WHERE x=$x-2"); $listing = mysql_query("SELECT img FROM map WHERE x=$x-3");
Donc pour résumé, dans la première méthode j'ai un listing total de la table (donc si la table map contient 1500 entrée, il va toute les vérifier juste pour en sortir 391 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if ($y=$y-1) { $m1m1=$img; } if ($y=$y-2) { $m1m2=$img; } if ($y=$y-3) { $m1m3=$img; }
Avec la deuxième méthode il va faire 23 requettes différente au lieux d'une seul, car il y à 23 colonne, en contre partie il ne va fouiller que les entrée dont le champ x correspond à ceux du tableau html.
Laquelle de ces méthode serais la plus légère et surtout, quelqu'un aurais une idée moins rébarbatif ?
Partager