Salut tout le monde,

Voilà j'ai un problème et j'espère qu'on m'apporte des indices de réponses et qu'on m'aide à résoudre mon angoisse

Bon rentrons dans le vif du sujet si vous le voulez bien: je souhaite faire un générateur de particule (donc assez simple à faire) mais j'ai un problème quand je souhaite utiliser un pointeur. En effet en n'utilisant pas de pointeur vers ma structure Particule dont les données sont contenus dans un tableau statiques, le jeu se lance et fonctionne normalement (on voit des particules se déplaçaient) mais lorsque je souhaite généraliser ma fonction par un pointeur le jeu ne lance plus :S

Voici la fonction ne fonctionnant pas en question:
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
#define MAX_PARTICULE 50
 
typedef struct Particule {
     float x;
	 float y;
	 float z;
	 float oldx;
	 float oldy;
	 float oldz;
	 float anglex;
	 float angley;
	 float anglez;
	 float speed;
	 float r;
	 float b; 
	 float g;
	 float size;
	 float delayactive;
	 int active;
} Particule;
Particule particule[MAX_PARTICULE];
 
void initParticule(Particule**particule, int maxparticule, float x, float y, float z) {
     int i;
	 for(i=0; i<maxparticule; i++) {
	     particule[i]->anglex = ((rand()%(360+360)-360)*M_PI)/180.0f;
		 particule[i]->angley = ((rand()%(360+360)-360)*M_PI)/180.0f;
		 particule[i]->anglez = ((rand()%(360+360)-360)*M_PI)/180.0f;
		 particule[i]->x = x;
		 particule[i]->y = y;
		 particule[i]->z = z;
		 particule[i]->oldx = particule[i]->x;
		 particule[i]->oldy = particule[i]->y;
		 particule[i]->oldz = particule[i]->z;
		 particule[i]->r = rand()%(255-0)+0;
		 particule[i]->b = rand()%(255-0)+0;
		 particule[i]->g = rand()%(255-0)+0;
		 particule[i]->speed = rand()%(5-1)+1;
		 particule[i]->speed /= 100.0f;//10.0f le mieux
		 particule[i]->delayactive = rand()%(50-5)+50;
		 particule[i]->delayactive /= 1000.0f;
		 particule[i]->size = rand()%(10-1)+1;//à diviser par 10 :)
		 particule[i]->size /= 100.0f;
		 particule[i]->active = 100;
	 }
}
Voici la fonction fonctionnant:

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
#define MAX_PARTICULE 50
 
typedef struct Particule {
     float x;
	 float y;
	 float z;
	 float oldx;
	 float oldy;
	 float oldz;
	 float anglex;
	 float angley;
	 float anglez;
	 float speed;
	 float r;
	 float b; 
	 float g;
	 float size;
	 float delayactive;
	 int active;
} Particule;
Particule particule[MAX_PARTICULE];
Particule tirparticule[MAX_PARTICULE];
 
#define UTIL_PARTICULE 50
 
void initParticule(Particule*particule, int maxparticule, float x, float y, float z) {
     int i;
	 for(i=0; i<maxparticule; i++) {
	     particule[i].anglex = ((rand()%(360+360)-360)*M_PI)/180.0f;
		 particule[i].angley = ((rand()%(360+360)-360)*M_PI)/180.0f;
		 particule[i].anglez = ((rand()%(360+360)-360)*M_PI)/180.0f;
		 particule[i].x = x;
		 particule[i].y = y;
		 particule[i].z = z;
		 particule[i].oldx = particule[i].x;
		 particule[i].oldy = particule[i].y;
		 particule[i].oldz = particule[i].z;
		 particule[i].r = rand()%(255-0)+0;
		 particule[i].b = rand()%(255-0)+0;
		 particule[i].g = rand()%(255-0)+0;
		 particule[i].speed = rand()%(5-1)+1;
		 particule[i].speed /= 100.0f;//10.0f le mieux
		 particule[i].delayactive = rand()%(50-5)+50;
		 particule[i].delayactive /= 1000.0f;
		 particule[i].size = rand()%(10-1)+1;//à diviser par 10 :)
		 particule[i].size /= 100.0f;
		 particule[i].active = 100;
	 }
}
Merci de votre aide

Bonne soirée