Skocz do zawartości

Wbudowany particle system w 3d


Rekomendowane odpowiedzi

Niestety nie mogę dać przykładu, ponieważ mam wira na kompie, ale dam skrypt.

Potrzebny wam będzie jakiś silnik 3d (Może być ten, co wykonał KonradGM)

 

Tworzycie nowy obiekt i dajcie mu w Create:

GML
{

depth=-1 //depth - jeśli ujemny, wtedy czasteczki sa ladniejsze

z=0 //wysokość nad ziemia

// tworzy system czasteczek

ps = part_system_create();

part_system_automatic_draw(ps,false); //wyłączamy automat

// czasteczki fajerwerkow

pt1 = part_type_create();

part_type_shape(pt1,pt_shape_flare);

part_type_size(pt1,0.1,0.2,0,0);

part_type_speed(pt1,0.5,4,0,0);

part_type_direction(pt1,0,360,0,0);

part_type_color1(pt1,c_red);

part_type_alpha2(pt1,1,0.4);

part_type_life(pt1,20,30);

part_type_gravity(pt1,0.2,270);

// raca

pt2 = part_type_create();

part_type_shape(pt2,pt_shape_sphere);

part_type_size(pt2,0.2,0.2,0,0);

part_type_speed(pt2,10,14,0,0);

part_type_direction(pt2,0,0,0,0);

part_type_color2(pt2,c_white,c_gray);

part_type_life(pt2,30,60);

part_type_gravity(pt2,0.2,270);

part_type_death(pt2,150,pt1); // tworzy nowego fajerwerka jak poprzedni zginie

// tworzenie emittera czasteczek

em = part_emitter_create(ps);

part_emitter_region(ps,em,100,540,480,490,ps_shape_rectangle,ps_distr_linear);

part_emitter_stream(ps,em,pt2,-10); // tworzenie jednego co 10 stepów

}

Czyli nazwyklejsze fajerwerki z helpa, ale ze małą korektą part_type_dirtection i wyłączamy automatyczne rysowanie cząstek.

 

Teraz wpisujemy w draw:

GML
d3d_transform_set_identity(); //reset

d3d_transform_add_rotation_z(point_direction(x,y,Kamera.x,Kamera.y)); //obrot w strone kamery

d3d_transform_add_rotation_y(90); //korekcja

part_system_drawit(); //dopiero teraz rysuj czastki

d3d_transform_add_translation(x,y,z); //zatwierdz pozycje

d3d_transform_set_identity(); //reset

 

Jeśli wszystko jest poprawne, to po wstawieniu do rooma i odpaleniu powinniśmy zobaczyć przyjemny dla oka pseudo-3d system cząsteczek.

 

Należy pamiętać, że:

-W stronę kamery są obracane systemy, a nie cząsteczki,

-Jeśli ktoś podejdzie za blisko, zobaczy płaski jak papier fajerwerk,

-Cząsteczki nie mają kolizji,

-Nie możesz używać deflectors,attractors,changers,destroyers dla cząsteczek,

-Widać je przez mgłę (d3d_set_fog),

-Depth musi być mniejszy od 0, inaczej będziesz widział brzydkie obwódki przy cząsteczkach.

 

Jeśli to wykorzystasz, proszę wspomnij o mnie w creditsach :)

Edytowane przez Makary155
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...