2009-03-25 7 views
2

J'essaie de mettre en œuvre une stratégie à petite échelle, en prenant le jeu implémenté en Java, GUI est faite avec JFace et SWT.GUI, java, SWT et la représentation de la carte du monde

Mon défi est d'écrire une implémentation graphique de la carte du monde, où les pays agissent comme des boutons cliquables. Cependant, les pays n'ont pas de limites fixes, pas de forme rectangulaire, et tout simplement pas de façon que je puisse penser à décrire dans une disposition de grille.

Ceci est ma première fois d'essayer de mettre en œuvre un projet de ce type, s'il vous plaît conseiller

Répondre

3

Si c'est une carte à base de tuiles (comme à la civilisation) ou il est affiché comme pixmap, vous pouvez enregistrer la propriété de chaque tuile/pixel dans un tableau à deux dimensions. Il suffit d'afficher la carte et un pixmap simple et cliquable dans une toile pour ajouter un MouseListener. Si vous obtenez un événement de clic aux coordonnées (X, Y), vous pouvez simplement obtenir votre pays comme:

Country clickedCountry = myCountriesOnMap[X][Y]; 

... dans votre Listener implémentant l'interface MouseListener. myCountriesOnMap serait de type Country [] [].

Bien sûr, vous aurez besoin d'un algorithme qui va résoudre la propriété pour chaque tuile/pixel au démarrage ou si un territoire est conquis (je ne sais pas, si cela peut arriver). Peut-être devrez-vous définir vos pays comme des polygones (comme vous le feriez pour une carte HTML). Je ne peux pas vous aider à ce sujet, car je n'ai rien fait de similaire, mais je suis sûr que vous trouverez quelque chose sur Google.

Salutations

Sacher

0

Essayez d'utiliser les données OpenStreetMap. Il contient des frontières de pays exactes et de bonnes possibilités d'exportation d'images. Le Key:border tag vous montrera toutes les bordures. Vous pouvez l'extraire et calculer vos zones cliquables.