15-02-2010, 05:34 PM
Donc ton problème, c'est de réaliser une viewbox de la carte globale.
Je ne sais pas comment eux font, mais je vais te proposer deux pistes : la première et la deuxième.
La première piste utilise Javascript. Si tu représentes ton univers dans une bloc de 500*500px, tu as juste à récupérer les coordonnées du clic (relatives au bloc dans lequel on clique) et tu as alors les coordonnées du coin supérieur gauche (je le prends par convention) de ta viewbox.
Exemple : si l'utilisateur clique au point 80, 120 et que ta viewbox fait 100*100, tu sais que l'utilisateur veut afficher le rectangle dont les angles (dans l'ordre supérieur gauche, supérieur droit, inférieur droit, inférieur gauche) sont (80; 120), (80 + 100; 120), (80 + 100; 120 + 100), (80; 120 + 100). Il te suffit donc de chercher les planètes dont les coordonnées absolues sont dans ce carré (je partais du principe qu'on stockait des coordonnées relatives à la galaxie, mais rien n'empêche de stocker ces coordonnées relatives et les absolus (on peut aussi calculer ces derniers aux besoin, mais c'est du gâchis de ressources)).
La deuxième consiste à proposer des viewbox pour une galaxie entière. Si tu as des galaxies dont la représentation graphique (avec les images de planètes, etc.) est plus grande que la viewbox, tu peux oublier (à moins de faire du paning façon Google Maps).
Voilà. N'hésite pas à dessiner et/ou faire des découpages pour modéliser une viewbox. Si comme moi tu es un matheux à chier, ça t'aidera beaucoup. Faut juste accepter d'avoir l'air con si quelqu'un passe.
Sephi-Chan
Je ne sais pas comment eux font, mais je vais te proposer deux pistes : la première et la deuxième.
La première piste utilise Javascript. Si tu représentes ton univers dans une bloc de 500*500px, tu as juste à récupérer les coordonnées du clic (relatives au bloc dans lequel on clique) et tu as alors les coordonnées du coin supérieur gauche (je le prends par convention) de ta viewbox.
Exemple : si l'utilisateur clique au point 80, 120 et que ta viewbox fait 100*100, tu sais que l'utilisateur veut afficher le rectangle dont les angles (dans l'ordre supérieur gauche, supérieur droit, inférieur droit, inférieur gauche) sont (80; 120), (80 + 100; 120), (80 + 100; 120 + 100), (80; 120 + 100). Il te suffit donc de chercher les planètes dont les coordonnées absolues sont dans ce carré (je partais du principe qu'on stockait des coordonnées relatives à la galaxie, mais rien n'empêche de stocker ces coordonnées relatives et les absolus (on peut aussi calculer ces derniers aux besoin, mais c'est du gâchis de ressources)).
La deuxième consiste à proposer des viewbox pour une galaxie entière. Si tu as des galaxies dont la représentation graphique (avec les images de planètes, etc.) est plus grande que la viewbox, tu peux oublier (à moins de faire du paning façon Google Maps).
Voilà. N'hésite pas à dessiner et/ou faire des découpages pour modéliser une viewbox. Si comme moi tu es un matheux à chier, ça t'aidera beaucoup. Faut juste accepter d'avoir l'air con si quelqu'un passe.
Sephi-Chan