Direction d'une balle
Effr
-
faseldi Messages postés 279 Date d'inscription Statut Membre Dernière intervention -
faseldi Messages postés 279 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais savoir comment, en Java, réaliser la fonction suivante :
- la balle se trouve à une position initiale fixe
- L'utilisateur clique avec sa souris quelque part sur l'écran
- la balle prends cette direction (celle où l'utilisateur a cliqué)
Illustration :
http://img15.hostingpics.net/pics/739670Sanstitre.png
Merci d'avance pour vos réponses, et bonne soirée !
Je voudrais savoir comment, en Java, réaliser la fonction suivante :
- la balle se trouve à une position initiale fixe
- L'utilisateur clique avec sa souris quelque part sur l'écran
- la balle prends cette direction (celle où l'utilisateur a cliqué)
Illustration :
http://img15.hostingpics.net/pics/739670Sanstitre.png
Merci d'avance pour vos réponses, et bonne soirée !
A voir également:
- Direction d'une balle
- Livre de cp1 mariam joue à la balle pdf - Télécharger - Études & Formations
- Voir une rue en direct - Guide
- Conseils choix d'un livre - Forum Études / Formation High-Tech
- Comment degonfler une balle de foot ✓ - Forum Loisirs / Divertissements
- Thème de soutenance en secrétariat de direction pdf - Forum Mail
1 réponse
Bonjour, voilà je t'ai fait un petit code qui devrait faire ce que tu souhaite!
Bonne journée :)
Edit : j'ai retiré la javadoc qui plantait la balise code de CCM
package effr;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.MouseInputListener;
public class Effr {
private final JFrame frame;
private final Balle balle;
private int depX, depY;
private final int height = 500;
private final int width = 500;
public Effr(){
frame = new JFrame();
frame.setSize(width,height);
depX = 0;depY = 0;
frame.addMouseListener(new MouseInputListener() {
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
depX = -Math.floorDiv(width,y);
depY = Math.floorDiv(height,x);
depX=depX==0?-1:depX;
depY=depY==0?1:depY;
if(balle.posX < x){
depX=-depX;
}
if(balle.posY > y){
depY=-depY;
}
System.out.println("click!");
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
}
});
balle = new Balle(10,10);
frame.add(balle);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
lancerJeu();
}
public void lancerJeu(){
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while(true){
balle.setBallLocation(balle.posX+depX, balle.posY+depY);
try{
Thread.sleep(100);
}catch(InterruptedException e){
break;
}
}
}
});
t.start();
}
private class Balle extends JPanel{
public int posX, posY;
public Balle(int x, int y){
posX=x;
posY=y;
}
@Override
public void paint(Graphics g){
g.clearRect(0, 0, width, height);
g.fillOval(posX, posY, 30, 30);
}
public void setBallLocation(int x, int y){
posX = x;
posY = y;
repaint();
}
}
public static void main(String[] args) {
Effr e = new Effr();
}
}
Bonne journée :)
Edit : j'ai retiré la javadoc qui plantait la balise code de CCM