Bonjour,

J'ai tout essayé pendant un long moment mais je ne suis parvenu à comprendre pourquoi ça ne marche pas.

dans Ball.h :

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
#pragma once
class Ball {
 
public:
 
	Ball( int posX, int PosY, int speedX, int speedY);
	~Ball( void );
 
	int m_x;
	int m_y;
	int m_speedX;
	int m_speedY;
 
	static Ball *balls[2];
 
	void updateBall(int posX, int PosY);
 
};
Dans Ball.cpp :

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
#include "Ball.h"
 
Ball * Ball::balls[2] = {0};
 
// build / destruct -------------------------------------------------------------------------
 
Ball::Ball( int posX, int posY, int speedX, int speedY)
{
	m_x = posX;
	m_y = posY;
	m_speedX = speedX;
	m_speedY = speedY; 
}
 
 
Ball::~Ball(void)
{
	//OutputDebugString("destruction ball\n");
}
 
void Ball::updateBall(int posX, int posY){
	m_x = posX;
	m_y = posY;
}
Et enfin dans le main.cpp :

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
#include <math.h>
#include "Ball.h"
 
...
...
 
Ball::balls[0] = new Ball((int)(-SCREEN_WIDTH/2+50), (int)(-SCREEN_HEIGHT/2+50), 10, 10);
Ball::balls[1] = new Ball(0, 0, 10, 10);
 
...
...
 
void HeartGame::routine () {
 
	{
 
		for(int i=0; i<=1; i++){ //On boucle sur toutes les billes
 
			Ball *b = Ball::balls[i];
 
			//b->updateBall(b->m_x + x, b->m_y + x);
 
			b->updateBall(b->m_x + b->m_speedX, b->m_y + b->m_speedY);
 
			HeartGraphics::drawSmallSprite( b->m_x , b->m_y, 0, 0 );
 
		} 
 
 
	}
 
}
 
...
...
Je précise que dans main.cpp si j'incrémente une variable x dans la routine :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
HeartGraphics::drawSmallSprite( x , x, 0, 0 );
Les 2 balles se déplacent bien en diagonales, alors que dans le code posté plus haut les 2 balles restent fixes.
A votre avis pourquoi m_x et m_y ne sont pas mis à jour à chaque frame ?

Merci