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:
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 #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; } }
Merci de 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 #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; } }
Bonne soirée
Partager