ahh...justement comment on fait ?Envoyé par saod
ahh...justement comment on fait ?Envoyé par saod
Merci, merci, merci.... pour une fois ca m'a evite de hurler.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Si c'est pour faire ce genre de jeux je ne pense pas qu'un layout sois conseillé !!! il vaut mieux dessiner toi meme tes bonhommes, tes formes, tes monstres, etc... avec la class Graphics ou Graphics2d ...
Non qu'il soit impossible de faire ca uniquement avec des composants Swing, mais bon .... si jamais on doit animer le deplacement des pieces... et puis quel gachis au niveau performance.
Regarde d'abord la demo la demo jfc/Java2Demo fournis avec le JDK ; ca te donnera un appercut des capacites de Java2D ainsi qu'un peu de code source pour voir comment ca marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ahh...justement comment on fait ?
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci
j ai essaye un truc....mettre une image et essaye de la deplacer a l aide du clavier ...
j ai mis l affichage de l image dans paint ... mais comment reafficher l image ... si j appel paint il me fait une exception
Tu appeles repaint() en reaction au deplacement de l'image.
Ensuite ca serait mieux si on savait quelle exception (type, message) etait lancee...
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci ..j ai un petit prob... mon espace de jeu est dans un jpanel ... comment faire pour definir la taille de mon espace de jeu ???
j ai essaye avec setsize mais cela ne marche pas ...
J'ai déjà fait ça pour un tp dans un cours de programmation, malheureusement je n'ai plus le source. Ce que j'avais fait en gros c'était :
Un JPanel tout bête qui sert de canvas pour dessiner qui est inséré dans un JFrame dont le contentPane est remplacé par le canvas. Tu dessines dans paintComponent() avec les outils de la classe Graphics (drawImage() etc). Il te faut 2 timers, un qui déplace les coordonnées des objets et l'autre qui appelle repaint(). Si tu veux que ça soit plus fluide il te faut un buffer dans lequel tu dessines hors-écran.
thx
c , je pense, ce que j ai fais ..
mais j arrive pas a definir la taille du jpanel en pixel .... et que le jframe s adapte automatiquement ...
Pense a mettre des tailles fixes avec setPreferredSize() et setMinimumSize() et setMaximumSize() sur le panel; ensuite met un BorderLayout dans ta frame, ajoute le panel au centre et fait pack(). Eventuellement rend ta frame non-redimensionable.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci ca marche ...
j ai un petit prob ... j ai ma classe qui represente la map du jeu et une classe pour les objets du jeu ... comment faire pour acceder a partir d une classe d un objet a une variable dans la map ... dans mon cas la taille de la map ?
En utilisant des accesseurs c'est à dire des méthodes qui ont pour but de renvoyer ou changer la valeur d'un attribut de ta classe
Par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class machin { private int bidule; // accesseurs de type get -- renvoie la valeur de bidule public int getBidule(){ return bidule; } // accesseurs de type set -- change la valeur de bidule public void setBidule(int bidule){ this.bidule = bidule; } }
euh non pas vraiment ...
comment dans la class machin acceder a bidulle sans forcement connaitre le nom de l instance de truc ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class truc{ int bidulle; machin test = new test(); }
ou alors comment definir des variables globales a l ensemble du projet ?
Pour les variables globales, il faut utiliser des variables statiques.
Dans ton cas, ce serait plus particulièrement un singleton pour le JPanel.
je ne vois pas vraiment ... t aurais pas un exemple sous le coude ?
Je suppose que dans ton jeu, tu n'as besoin que d'une seule fenetre, que j'appelle MainFrame :Il ne peut y avoir qu'un seul objet de la classe MainFrame dans ton programme, et tous les autres objets peuvent y accéder en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class MainFrame extends JFrame { private JPanel gamePanel; private MainFrame(...) { //constructeur classique ... } public Toto getToto() {...} ... // N.B le constructeur est privé. Il est impossible de // construire des objets MainFrames sauf dans cette classe // Maintenant le singleton : private static MainFrame singleton; public static MainFrame getMainFrame() { if(singleton == null) singleton = new MainFrame(...); return singleton; } }[EDIT]Bon, dans mon code, le singleton est la JFrame, mais tu peux faire ca avec le JPanel si tu préfères.[/EDIT]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MainFrame mf = MainFrame.getMainFrame(); Toto t = MainFrame.getMainFrame().getToto();
merci je vais essaye ....
eh be c facile de faire des singleton en java !!!!
En général on appele la méthode pour faire un singleton getInstance() pour des raisons d'harmonie.
De plus la variable, ici appelée singleton doit être initialisée à null, c'est plus propre
Pour le reste c'est très bien.
C'est ironique ? Quand tu as compris le principe, ca va vite !Envoyé par Seth77
![]()
Bimouxette : oui, c'est un peu baclé, mais le singleton est largement couvert de tutoriaux et d'exemples, alors je ne me suis vraiment pas cassé la tete.
non c pas de l ironie ... j avais deja fais des singleton en C++ et c etait bien plus complique ... 8)Envoyé par xavlours
n y a t il pas moyen de definir un pointeur vers le frame accessible partout au lieu de definir dans chaque classe un pointeur vers la frame ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MainFrame mf = MainFrame.getMainFrame(); Toto t = MainFrame.getMainFrame().getToto();
Partager