Bouton "Play" et "Score"

Le
BKCelia offline Hors ligne
Bonjour,
Je suis en classe de terminale, et j'ai comme devoir de créer un jeu, j'ai donc décidé, avec mon camarade, de faire un jeu inspiré de Space Invaders. Nous bloquons actuellement sur la création de deux boutons, "Play" et "Score". En effet, nous souhaitons utiliser MouseClicked, mais nous ne savons pas comment l'utiliser pour que le clique, uniquement dans une certaine zone (la zone A et la zone B, pour chacun des boutons), fasse un évènement (lancer le jeu ou afficher le tableau des meilleurs scores), nous avons posé la question à notre professeur, qui nous a renvoyé à un tp déjà réalisé, mais ce tp n'est en réalité pas en rapport avec ce que l'on souhaite faire (car il utilise les KeyListeners).
Merci d'avoir lu jusqu'ici :)
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
David Larochette
Le #26545655
Le 07/05/2020 à 00:21, BKCelia a écrit :
Bonjour,
Je suis en classe de terminale, et j'ai comme devoir de créer un jeu, j'ai donc
décidé, avec mon camarade, de faire un jeu inspiré de Space Invaders. Nous
bloquons actuellement sur la création de deux boutons, "Play" et "Score". En
effet, nous souhaitons utiliser MouseClicked, mais nous ne savons pas comment
l'utiliser pour que le clique, uniquement dans une certaine zone (la zone A et
la zone B, pour chacun des boutons), fasse un évènement (lancer le jeu ou
afficher le tableau des meilleurs scores), nous avons posé la question à notre
professeur, qui nous a renvoyé à un tp déjà réalisé, mais ce tp n'est en réalité
pas en rapport avec ce que l'on souhaite faire (car il utilise les
KeyListeners).
Merci d'avoir lu jusqu'ici :)

Il faut pour cela utiliser les MouseEvents, qui sont implémentés au
niveau de java.awt.Component, dont héritent tous les composants Swing (à
supposer que c'est le framework graphique que vous utilisez).
La marche à suivre est d'enregistrer une classe héritant de
MouseListener auprès du composant à écouter e.g.
maZoneDeRendu.addMouseListener(monMouseListener);
puis d'utiliser les méthodes MouseEvent.getX() et MouseEvent.getY() pour
vérifier que l'évenement a bien eu lieu dans la zone désirée.
bkcelia offline Hors ligne
Le #26545687
Le jeudi 07 Mai 2020 à 10:13 par David Larochette :
Le 07/05/2020 à 00:21, BKCelia a écrit :
Bonjour,
Je suis en classe de terminale, et j'ai comme devoir de créer un jeu,
j'ai donc
décidé, avec mon camarade, de faire un jeu inspiré de
Space Invaders. Nous
bloquons actuellement sur la création de deux boutons, "Play"
et "Score". En
effet, nous souhaitons utiliser MouseClicked, mais nous ne savons pas comment
l'utiliser pour que le clique, uniquement dans une certaine zone (la zone A et
la zone B, pour chacun des boutons), fasse un évènement (lancer
le jeu ou
afficher le tableau des meilleurs scores), nous avons posé la question
à notre
professeur, qui nous a renvoyé à un tp déjà
réalisé, mais ce tp n'est en réalité
pas en rapport avec ce que l'on souhaite faire (car il utilise les
KeyListeners).
Merci d'avoir lu jusqu'ici :)

Il faut pour cela utiliser les MouseEvents, qui sont implémentés
au
niveau de java.awt.Component, dont héritent tous les composants Swing

supposer que c'est le framework graphique que vous utilisez).

La marche à suivre est d'enregistrer une classe héritant de
MouseListener auprès du composant à écouter e.g.
maZoneDeRendu.addMouseListener(monMouseListener);
puis d'utiliser les méthodes MouseEvent.getX() et MouseEvent.getY() pour
vérifier que l'évenement a bien eu lieu dans la zone
désirée.


Merci beaucoup pour votre réponse, cela m'aide énormément !
Je n'avais en effet pas pensé au getX et getY.
Bonne journée et merci encore.
bkcelia offline Hors ligne
Le #26545718
Le jeudi 07 Mai 2020 à 00:21 par BKCelia :
Bonjour,
Je suis en classe de terminale, et j'ai comme devoir de créer un jeu,
j'ai donc décidé, avec mon camarade, de faire un jeu
inspiré de Space Invaders. Nous bloquons actuellement sur la
création de deux boutons, "Play" et "Score". En
effet, nous souhaitons utiliser MouseClicked, mais nous ne savons pas comment
l'utiliser pour que le clique, uniquement dans une certaine zone (la zone A et
la zone B, pour chacun des boutons), fasse un évènement (lancer
le jeu ou afficher le tableau des meilleurs scores), nous avons posé la
question à notre professeur, qui nous a renvoyé à un tp
déjà réalisé, mais ce tp n'est en
réalité pas en rapport avec ce que l'on souhaite faire (car il
utilise les KeyListeners).
Merci d'avoir lu jusqu'ici :)


Bonsoir, j'ai tenté d'insérer le getx et getY, et voici à quoi ressemble ma classe souris :

package Systeme;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import Jeu.Chrono;
import Jeu.Main;

public class Souris implements MouseListener {
private double mouseX;
private double mouseY;
public void mouseClicked(MouseEvent e) {
mouseX = e.getX();
mouseY = e.getY();
if(e.getX() > 200 && e.getX() Main.scene.setDy(2);
Thread chronoEcran = new Thread(new Chrono());
chronoEcran.start();

}

}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
}

lorsque je lance l'applet et que je tente d'appuyer à cet endroit, rien ne se passe, alors que le jeu est sensé se lancer :/
David Larochette
Le #26546111
Le 07/05/2020 à 22:15, bkcelia a écrit :
Le jeudi 07 Mai 2020 à 00:21 par BKCelia :
Bonjour,
Je suis en classe de terminale, et j'ai comme devoir de créer un jeu,
j'ai donc décidé, avec mon camarade, de faire un jeu
inspiré de Space Invaders. Nous bloquons actuellement sur la
création de deux boutons, "Play" et "Score". En
effet, nous souhaitons utiliser MouseClicked, mais nous ne savons pas comment
l'utiliser pour que le clique, uniquement dans une certaine zone (la zone A

et
la zone B, pour chacun des boutons), fasse un évènement (lancer
le jeu ou afficher le tableau des meilleurs scores), nous avons posé la
question à notre professeur, qui nous a renvoyé à un tp
déjà réalisé, mais ce tp n'est en
réalité pas en rapport avec ce que l'on souhaite faire (car il
utilise les KeyListeners).
Merci d'avoir lu jusqu'ici :)

Bonsoir, j'ai tenté d'insérer le getx et getY, et voici à quoi ressemble ma
classe souris :

[SNIP : Code Java]
lorsque je lance l'applet et que je tente d'appuyer à cet endroit, rien ne se
passe, alors que le jeu est sensé se lancer :/

Le code que tu donnes ne permet pas vraiment de voir ce qui ne va pas.
Une bonne piste serait de vérifier que tu reçois bien des événements
souris (donc que le AddMouseListener est bien effectif). Pour ce faire,
tu peux par exemple mettre un
System.out.printLn(String.format("Evt souris en (%d,%d)", e.getX(),
e.getY()));
sur tous les évènements souris. Cela te permettra de vérifier à la fois
que l'inscription aux évènements fonctionne, et que les coordonnées X,Y
correspondent bien à l'attendu.
Poster une réponse
Anonyme