Direction d'une balle
Fermé
Effr
-
10 févr. 2016 à 19:03
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - 11 févr. 2016 à 13:09
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - 11 févr. 2016 à 13:09
A voir également:
- Direction d'une balle
- Foot balle - Guide
- Direction générale de la concurrence, de la consommation et de la répression des fraudes - Accueil - Arnaque
- Livre de cp1 mariam joue à la balle pdf - Télécharger - Études & Formations
- Balle de glace arme - Forum Cinéma / Télé
- Inoué veut diffuser une partie de jeu vidéo en continu et en direct (live streaming). elle souhaite afficher sur sa diffusion : son jeu sa webcam en vignette configurez son logiciel de diffusion ci-dessous pour que les deux éléments s’affichent. - Forum Webcam
1 réponse
faseldi
Messages postés
279
Date d'inscription
dimanche 9 novembre 2014
Statut
Membre
Dernière intervention
3 janvier 2017
20
Modifié par faseldi le 11/02/2016 à 13:28
Modifié par faseldi le 11/02/2016 à 13:28
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