cs_azazelle
Messages postés4Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention25 mai 2007
-
25 mai 2007 à 00:07
cs_azazelle
Messages postés4Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention25 mai 2007
-
25 mai 2007 à 19:33
Bonsoir je voudrais soliciter une petite aide de la part de quelqu'un car je ne trouve vraiment pas la solution.
Voila en fait je veux creer une fenetre de demarage pour mon jeu en effet j'ai creer un jeu de tetris et j'ai temporiser le temps de descente des pieces a zero a l'origine et j'ai creer un fenetre de démarage qui devrait initialiser la valeur de la descente à 1 mais voila j'ai un gros probléme ça ne marche pas quelqu'un peut m'aider???
Ma variable de temps est k il est a la valeur de 0 initialement dans ma class Game manageret je voudrai la faire passer à un lorsque je clique sur ok
la je vous montre ma class GamePaneltest c'est celle qui permet de gerer l'affichage de mon jeu. J'ai surligner en vert les endroits qui me semble important pour que vous puissiez m'aider
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()){
case KeyEvent.VK_LEFT:;
case KeyEvent.VK_KP_LEFT: gm.performMove(GameManager.MOVE_LEFT);break;
case KeyEvent.VK_RIGHT:;
case KeyEvent.VK_KP_RIGHT: gm.performMove(GameManager.MOVE_RIGHT);break;
case KeyEvent.VK_UP:;
case KeyEvent.VK_KP_UP: gm.performMove(GameManager.MOVE_ROTATE);break;
case KeyEvent.VK_DOWN:;
case KeyEvent.VK_KP_DOWN: gm.performMove(GameManager.MOVE_DOWN);break;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
public static void main(String[] args) {
JFrame jf=new JFrame("test viral !");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GamePanelTest gpanel=new GamePanelTest();
jf.getContentPane().add(gpanel);
jf.setSize(610,650);
jf.setVisible(true);
jf.addKeyListener(gpanel.getListener());
Demarage.afficheMessage (jf, "Welcome"); // Affiche la fenetre de démarage
}
private KeyListener getListener() {
return new GameKeyListener();
}
}
class Demarage //Creation de la fenetre de démarage avec le bouton ok
{ static void afficheMessage (JFrame parent, String message)
{//création de l'objet boite de dialogue
JDialog boiteMessage = new JDialog (parent, "MESSAGE", true) ;
boiteMessage.setSize (400,300);
//mise en place des composants : bouton OK, etiquette
Container contenu = boiteMessage.getContentPane();
contenu.setLayout (new FlowLayout()) ;
JLabel txt = new JLabel (message) ;
contenu.add (txt) ;
JButton ok = new JButton ("OK");
contenu.add (ok);
ok.addActionListener (new EcouteOK (boiteMessage));
//affichage du dialogue
boiteMessage.setVisible (true);
// fin sur OK - rien a tester ici
boiteMessage.dispose();
}
}
class EcouteOK implements ActionListener
{ public EcouteOK (JDialog bd)
{this.bd=bd;
}
public void actionPerformed (ActionEvent e)
{bd.setVisible (false);
}
private JDialog bd;
amundain
Messages postés110Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention28 août 20121 25 mai 2007 à 08:58
---> plantage lors de l'envoi de la réponse, je recommence !
Hello,
Je pense que tu dois intégrer la nouvelle affectation de la valeur de k dans ta méthode actionPerformed gérant les évènements sur le bouton OK.
Pour celà, je te propose de :
- créer un constructeur vide dans ta classe GameManager pour ne pas te retaper le passage de tous les paramètres !
- créer une méthode setValue dans cette même classe
- actualiser la valeur de k à partir de cette méthode, en créant une instance de GameManager dans actionPerformed
- passer de bd.setVisible(false) à bd.dispose() pour que la fenêtre soit complètement abandonnée.
Ca donnerait...
class EcouteOK implements ActionListener
{
public EcouteOK (JDialog bd)
{
this.bd=bd;
}