1

salut,

j'aimerai savoir si quelqu'un avait un systeme de particule en C ( pas de C++ ) ^_^

j'essaye d'en faire un , mais j'y arrive pas et ca me gonfle sad

a votre bon coeur smile
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

2

Tu ne préferes pas le faire toi même ? Sachant que c'est ni très compliqué ni très long, et qu'au besoin j'en ai un qui marche à peu près en Delphi, et un autre pas fini en C, si y'a besoin de bouts de code ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

ben le probleme, c'est que je vois en gros le principe grin

une structure, une gestion de temp pour la vie de la particule, un mouvement.

mais le probleme ensuite, c'est de faire les fonctions et d'appliquer le tout sad

et je deteste la pratique sad'
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

4

Bah heu imaginons que tu veuilles génerer une explosion de particules sphérique; chaque particule va avoir au moins 3 coordonnées, 3 composantes de vitesse, et éventuellement d'autres infos comme la couleur, la transparence ou je ne sais quoi encore à l'initialisation de ton explosion, toutes les particules sont calées sur le foyer, et tu te débrouilles pour leur donner des composantes de vitesses qui donnent une sphere (par exemple tu géneres deux angles aléatoires, puis vitesse_x = cos(angle1) * cos(angle2) * constante, vitesse_y = sin(angle1) * cos(angle2) * constante, vitesse_z = sin(angle2) * constante). Il ne te reste plus qu'à afficher tes particules à chaque frame en ajoutant à chaque fois à leurs coordonnées tes composantes de vitesses. Tu prends ce principe et tu le modifies un peu pour génerer n'importe quel mouvement de particules.

Tu fais ça avec quoi, OpenGL, DirectX... ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

j'essais de faire ca avec SDL smile

j'ai fais un petit bout
#define MAX_PARTICULES 256

typedef struct
{
int x, y;
int dx, dy;
int life;
int count;
SDL_Surface *bmp;

} Particule;

Particule particule[MAX_PARTICULES];

void set_particule(Particule *p, int x, int y, int dx, int dy, int life)
{
p->x = x;
p->y = y;
p->dx = dx;
p->dy = dy;
p->life = life;
p->count = 0;
}

void draw_particule(Particule *p, int x, int y)
{
int x = p->x;
int y = p->y;

// draw
DrawSprite(screen,bmp, x, y, bmp->w,bmp->h,0,0);
}

void update_particule(Particule *p)
{
p->x += p->dx;
p->y += p->dy;
p->life --;
p->count ++;
}

void reset_particule(Particule *p, int max)
{
int i;
for(i = 0; i < max; i ++) p[i].life = 0;
}

Particule *get_free_particle(Particule *p, int max)
{
int i = 0;
while(p[i].life && i<max) i++;
if (i == max) return NULL;
return &p[i]; }


mais bon, pas l'aire de fonctionner sad
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

6

C'est curieux comme organisation, certaines fonctions prennent en paramètre une seule particule tandis que d'autres prennent un tableau de particules. Mais peu importe, ça devrait marcher à première vue ton truc, tu l'utilises comment ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

ben en premier je fais un set_particule avant ma boucle
ensuite un draw particule et un update particule

avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

8

heu ué nan mais poste le code de la fonction principale en fait, ça ira plus vite ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)