Crée un editeur de carte avec Java

Démarré par C2dric, 01 Février 2010 à 21:27

0 Membres et 1 Invité sur ce sujet

J'ai commencé un programmé un éditeur de carte en Java. Mais au cour du processus, je me suis posé certaine question sans réponse. Ayant vue la vidéo de démonstration de l'éditeur de Solarus, j'étais très impressionner. C'est pour cela que je décide de posé certaine question ici, que vous êtes plus à même de comprendre et de répondre. :)

1) Pour l'affichage graphique, j'utilise un simple JPanel. Je me demandai s'il y avait pas un composant mieux approprié. J'ai vu en AWT qu'il y avait Cancras. Mais c'est AWT.

2)J'ai mis une JScrollPane sur ma fenêtre graphique, mais celle ci ne s'affiche par, même quand l'image est hors de l'écran. Certainne solution sur internet propose d'empilé 2 JPanel. Mais cela ne fonctionne pas. Il se peut que je commête des erreurs, mais de toute façons cette solution parait peu propre.

3)Connais vous un bon tutoriel en dessin dans Java. Tous ceux que j'ai lu, ne s'intéresses qu'a la fonction Paint avec son Graphic interne.

cela peut paraître peu, mais ce sont des points essentiel pour pouvoir continue convenable mon petit porjet.  -_-
L'avenir appartient à ceux qui se lavent tôt.... parce qu'il reste de l'eau chaude.'-_-

Pour le 2 essaye en utilisant setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS) et l'équivalent vertical pour voir si tu as bien positionné ton ScrollPane. Sans plus d'informations sur ton code ça va être dur de t'en dire plus. (et j'ai pas spécialement le temps de relire ton code)
Pour le 1 et le 3 aucune idée.
Citation
Ash Nazg Durbatulùk, Ash Nazg Gimbatul,
Ash Nazg Thrakatulùk agh bruzum-ishi krimpatul.
The fellowship of the Ring - J.R.R. Tolkien

1) Canvas est une fentre spécial de AWT, car les Compotement ne permette pas le dessin, contrairement JCompotement.
Conclusion : Tous les JCompotement permettent facilement le dessin. B)
Sinon il y a des bibliothèque à par comme SDL(version JAVA évidement),OpenGL....

2)JScrollPane->JPanel1->JPanel2
En emboitant ainsi les composant, il suffit de dessiner et redimensionner en fonction de la taille du dessin dans JPanel2. :linkbravo:


3)De bon tutoriel sont disponibles sur le site de Sun. Parfois la carotte est en-dessous de l'âne. :linkXD:
L'avenir appartient à ceux qui se lavent tôt.... parce qu'il reste de l'eau chaude.'-_-

Si j'ai bien compris tu as réussi à répondre à tes questions tout seul ^^
Pour le 1) je confirme qu'il suffit d'hériter de JComponent et de redéfinir la fonction paint(). C'est exactement ce que je fais dans l'éditeur de zsdx. Pas besoin de Canvas ni de AWT donc.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

07 Février 2010 à 16:34 #4 Dernière édition: 08 Février 2010 à 22:59 par C2dric
Surpris, je pensais que tu utiliser le bunding SDL. Pour simuler correctement la méthode d'affichage. :blink:

Trouver tous seul, disons qu'on ma bien guidé tous de même. :mokona:

Enfin l'éditeur avance bien, je bloque juste sur les arbres. Dans la doc il est dit qu'il faut utiliser un MouseListener, mais il faut le combiner avec TreeListener. Enfin tous cela à l'air bien compliqué, juste pour savoir quand a lieux un double clic sur un élément.

Sinon précision, tu dis juste utilisée un JComponent, donc utiliser un JPanel est inutile pour juste de l'affichage. Limite si je remplace "extends JPanel" par "extends JComponent" il y aurais aucune erreur. Je vais essayer, se sera certainnement plus optimiser, car pour l'instant l'éditeur rame par mal chez moi. <_<

edit:: l'éditeur ramer car j'avais utilisé MouseClicked au lieu de MousePressed. Donc il fallait appuyer puis relacher le bouton sans déplacer la souris. Du coup je sentait un ralentissement en déplaçant la souris.
L'avenir appartient à ceux qui se lavent tôt.... parce qu'il reste de l'eau chaude.'-_-