Utilisation MouseListener [Résolu]

bobator 5 Messages postés lundi 26 mars 2007Date d'inscription 10 avril 2007 Dernière intervention - 10 avril 2007 à 20:21 - Dernière réponse : cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention
- 11 avril 2007 à 06:56
Bonjour à tous.
Nous continuons à créer notre petit jeu. Nous avons afficher notre map (zelda.gif) dans la JFrame, nous avons crée des droites pour avoir des rectangles qui forment les cases du jeu, puis nous avons mis un petit personnage animé (bibi.gif)
Maintenant nous aimerions faire déplacer ce personnage en cliquant sur les cases qui lui sont voisines. Nous avons vu dans un tutoriel qu'on pouvait se servir de MouseListener mais nous avons du mal à l'appliquer concrétement
Nous serions très heureux si vous pouviez nous donnez des pistes ou si vous avez vraiment le temps,l'appliquez à notre problème
Merci à vous.

import java.awt.*;
import javax.swing.*;

public class ecran extends JFrame
{
     public void paint(Graphics g)
    {
        Image fond=null;
            Toolkit kit = Toolkit.getDefaultToolkit();
           fond=kit.getImage("zelda.gif");

        g.drawImage(fond,0,0,1100,900,this);

        g.setColor(Color.RED);
        g.drawLine(0, 0, 0, 900);
        g.drawLine(110, 0, 110, 900);
        g.drawLine(220, 0, 220, 900);
        g.drawLine(330, 0, 330, 900);
        g.drawLine(440, 0, 440, 900);
        g.drawLine(550, 0, 550, 900);
        g.drawLine(660, 0, 660, 900);
        g.drawLine(770, 0, 770, 900);
        g.drawLine(880, 0, 880, 900);
        g.drawLine(990, 0, 990, 900);
        g.drawLine(1100, 0, 1100, 900);

        g.drawLine(0, 90, 1100, 90);
        g.drawLine(0, 180, 1100, 180);
        g.drawLine(0, 270, 1100, 270);
        g.drawLine(0, 360, 1100, 360);
        g.drawLine(0, 450, 1100, 450);
        g.drawLine(0, 540, 1100, 540);
        g.drawLine(0, 630, 1100, 630);
        g.drawLine(0, 720, 1100, 720);
        g.drawLine(0, 810, 1100, 810);
        g.drawLine(0, 900, 1100, 900);

        Toolkit kit2 = Toolkit.getDefaultToolkit();
           fond=kit.getImage("bibi.gif");
        g.drawImage(fond,110,360,110,90,this);

    }
     public ecran()
    {
        this.setTitle("ma fenetre");
        this.setSize(new Dimension(1100,900));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String args[])
    {
        new ecran().setVisible(true);    
    }
}
Afficher la suite 

5 réponses

Répondre au sujet
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 11 avril 2007 à 06:56
+3
Utile
Je te conseille plutôt de gérer le tracer dans le PaintComponents qui est fait pour cà : dans le mouseClicked tu enregistre la future position de ton image, et tu fait un updateUI de ta frame, ce qu idéclenchera le raffraichissement.

Pourquoi ? Pour séparer l'affichage du traîtement des déplacements, car tu aura sûrement à gérer le déplacement à plusieurs endroits de ton prog.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 10 avril 2007 à 20:29
0
Utile
bah pose nous des questions car là dans ton code, je ne vois nulle part un mouseListener...
Commenter la réponse de cs_DARKSIDIOUS
bobator 5 Messages postés lundi 26 mars 2007Date d'inscription 10 avril 2007 Dernière intervention - 10 avril 2007 à 20:39
0
Utile
C'est ca notre probleme, nous ne savons pas nous en servir donc on aimerait bien savoir comment l'utiliser dans notre code.
Commenter la réponse de bobator
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 10 avril 2007 à 21:26
0
Utile
ben c'est pas compliqué, mais tout dépend ce que tu veux en faire !

Exemple :
public class ecran extends JFrame implements MouseListener {
public ecran()
    {
        this.setTitle("ma fenetre");
        this.setSize(new Dimension(1100,900));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       addMouseListener(this);
    }

    public void mouseClicked(MouseEvent arg0) {
              System.out.println("CLICK");
        }

        public void mouseEntered(MouseEvent arg0) {}

        public void mouseExited(MouseEvent arg0) {}

        public void mousePressed(MouseEvent arg0) {
                         System.out.println("PRESSED");
        }

        public void mouseReleased(MouseEvent arg0) {
                          System.out.println("RELEASED");
        }
       
}
Commenter la réponse de cs_DARKSIDIOUS
bobator 5 Messages postés lundi 26 mars 2007Date d'inscription 10 avril 2007 Dernière intervention - 10 avril 2007 à 22:00
0
Utile
Donc si on comprend bien pour pouvoir deplacer le personnage en cliquant sur une des cases du jeu on doit utiliser ceci :

public void mouseClicked(MouseEvent arg0)
{
              Par contre la difficulté vient de ce qu'il faut marquer ici pour bien afficher le personnage.Peut on faire ceci
                Toolkit kit2 = Toolkit.getDefaultToolkit();
                  fond=kit.getImage("bibi.gif");
                   g.drawImage(fond,x,y,110,90,this)
             (x et y representant les coordonnées du clic effectué)
}
Commenter la réponse de bobator

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.