Bonjour,

je me suis proposer de faire un pong, malheureusement le mouvement de la balle est très répétitif, malgrès quelques efforts je n'arrive pas à faire rebondir la balle sur les limites du terrain, je sollicite donc votre aide:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
public void run() {
 
 
 
 
    	boolean rebondBalle = false;
 
        while (true) {
 
 
            /* si la balle est en jeu (en mouvement) */
            if (balle_Service) {
 
                /* si celle-ci se déplace vers la gauche */
                if (deplacement_Gauche && balle_X > BALLE_X_MIN) {
 
                    rebondBalle = (balle_Y >= raquetteOrdi_Y && balle_Y < (raquetteOrdi_Y + LONGUEUR_RAQUETTE)
                            ? true : false);
 
                    /* mise à jour de la position de la balle sur la table */
                    balle_X = balle_X - INCR_BALLE   ;
                    balle_Y = balle_Y   ;
                    table.positionBalle(balle_X, balle_Y);
 
                    /* si la balle rebondie */
                    if (balle_X <= RAQUETTE_ORDI_X && rebondBalle) {
 
                        deplacement_Gauche = false;
                    }
 
 
                }
                // Rebondissement de la balle sur les limites du terrain trajectoir aleatoir 
                if (balle_Y >= HAUT_TABLE ) 
                {
 
                	 deplacement_Vertical = - 1;
 
                }
 
                if (balle_Y<=BAS_TABLE ) 
                {
 
                	 deplacement_Vertical =   1;
                }
                /* si celle-ci se déplace vers la droite */
 
                if (!deplacement_Gauche && balle_X <= table.balle_x_max) {
 
 
                    rebondBalle = (balle_Y >= raquetteJoueur_Y && balle_Y < (raquetteJoueur_Y + LONGUEUR_RAQUETTE)
                            ? true : false);
 
                    /* mise à jour de la position de la balle sur la table */
                    balle_X = balle_X + INCR_BALLE;
 
                    table.positionBalle(balle_X, balle_Y);
 
                    /* si la balle rebondie */
                    if (balle_X >= table.place_Raquette && rebondBalle) {
 
                        deplacement_Gauche = true;
                    }
 
                }
            }