Bonjour,
Je me remet un peu au C++, et je suis en train de programmer un exécutable qui fait déplacer des balles dans la console windows.
J'ai réussi à créer une classe balle, avec une méthode: déplace balle.
Voici mon code:
Définition de la classe
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
 
#include <cstdlib>
#include <iostream>
#include <conio2.h>
#include <windows.h>
#include <time.h>
class Balle
{
  private:
          int balleX; //position courante axe X de la balle
          int balleY; //position courante axe Y de la balle
          char balleB; //Charactère représentant la balle
          int xB,yB; // itérateur pour le déplacement de ma balle
          int colorBalle; // donne une couleur à ma balle
          int speedBalle; // donne une vitesse de déplacement à ma balle
 
   public:
          Balle(int xBalle,int yBalle, char bBalle, int sPeedBalle); //initialisation de ma balle
          void moveBalle(void); //méthode pour déplacer la balle
 
};
Définition du constructeur et des méthodes:
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
//initialisation de  l'objet balle
Balle::Balle(int startX,int startY,char startNameBalle,int timeB)
{
          balleX = startX;
          balleY = startY;
          balleB = startNameBalle;
          xB = startX;
          yB = startY;
          textcolor(colorBalle);
          gotoxy(balleX,balleY);
          speedBalle = timeB;
          cout << balleB;
}
//méthode pour le déplacement de ma balle
void Balle::moveBalle(void)
{
        Sleep(speedBalle);
        //incrémentation des compteurs
        xB++;
        yB++;
         // j'efface ma balle
        gotoxy(balleX,balleY);
        cout << " ";
       //calcule des collisions de ma balle (fenêtre cmd en 80*25) 
        if(balleX <= 1 || xB <= 80)
        {
                   balleX++;
        }
        if(balleX >= 80 || xB >= 80)
        {
                 balleX--;
                 if(xB >= 160)
                         xB = 1;
 
        }
        if(balleY <=1 || yB <=25)
                  balleY++;
        if(balleY >=25 || yB >=25)
        {
                  balleY--;
                  if(yB >=50)
                        yB=1;
        }
        //colorisation aléatoire de ma balle à chaque déplacement
        textcolor(rand() % 10);
       //Affichage de la balle après déplacement
        gotoxy(balleX,balleY);
        cout << balleB;
}
mon main:
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
int main(int argc, char *argv[])
{
    srand(time(NULL));
    //Déclaration d'un tableau de 2 balles
    Balle *tabB[2];
    //initialisation des Balles
    tabB[0] = new Balle(rand() % 80,rand() % 25,'A',10);
    tabB[1] = new Balle(rand() % 80,rand() % 25,'A',20);
    getchar();
    //déplacement des 2 balles
    while(int i = 1)
    {
     for(int i = 0; i<2; i++)
     {
             tabB[i]->moveBalle();
     }
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
En faite, j'aimerais que mes 2 balles aient des vitesses de déplacements différentes.
J'ai essayé d'utiliser la fonction Sleep(time), mais cela ne fonctionne pas tellement, puisque même si je définis 2 temps d'attentes différents, c'est le temps d'attentes le plus long qui est pris en compte. Du coup, mes 2 balles se déplacent à la même vitesse.

Est-ce qu'il y aurait une solution pour que mes 2 balles se déplacent à des vitesses différentes?

Merci beaucoup pour vos réponses.

PS: Pour information, je développe sour DevCpp. J'ai utilisé la librairie conio2.h de borland. J'ai donc accès à la fonction gotoxy(x,y) etc....
Aussi, mon code est dans un seul fichier qui s'appelle main.cpp