Skocz do zawartości

Particles i ruch top-down


gall_anonim

Rekomendowane odpowiedzi

Witajcie.

Tworze sobie grę i generalnie nie mam większych problemów. Jednak aby nie było mi za łatwo postanowiłem pobawić się particles. No i zaczęło się.

Mam kod tworzący coś jak by ogień wraz z dymem:

GML
spotX = argument0;

spotY = argument1;

flow = part_system_create();

flame = part_type_create();

smoke = part_type_create();

part_type_shape(flame,pt_shape_flare) // the fire

part_type_size(flame,0.5,0.8,0.30,0)

part_type_scale(flame,0.10,0.10)

part_type_color3(flame,c_white,c_yellow,c_red)

part_type_alpha3(flame,1,0.70,.30)

part_type_speed(flame,0.20,.50,0,0)

part_type_direction(flame,0,359,0,20)

part_type_gravity(flame,0.10,90)

part_type_orientation(flame,0,180,0,0,1)

part_type_blend(flame,1)

part_type_life(flame,1,40)

part_type_shape(smoke,pt_shape_smoke) // where there's fire, there's smoke

part_type_size(smoke,1,1,0,0)

part_type_scale(smoke,0.25,0.25)

part_type_color2(smoke,c_gray, c_black)

part_type_alpha3(smoke,0.30,0.2,0.1)

part_type_speed(smoke,0.25,0.25,0,0)

part_type_direction(smoke,0,359,0,0)

part_type_gravity(smoke,0.10,90)

part_type_orientation(smoke,0,359,0,1,1)

part_type_blend(smoke,0)

part_type_life(smoke,60,60)

part_type_death(flame,1,smoke)

wound = part_emitter_create(flow);

part_system_depth(flow, -25);

part_emitter_region(flow,wound,spotX+8,spotX+24,spotY+16,spotY+32,ps_shape_line ,ps_distr_gaussian);

part_emitter_stream(flow,wound,flame,1);

Skrypt działa ładnie i generuje dość ładnie wyglądający efekt cząsteczkowy.

Problem polega na tym, że gra jest skrolowana od góry do dołu i efekt zostawia za sobą smugę, która nie znika. O ile się przesuwa od góry do dołu, to zamiast efektu rozmywającego się dymu mam coraz większą ilość tego efektu. To z kolei jak się domyślacie , skutkuje w końcu konkretną zacinką kompa :)

Domyślam się, że gdzieś w powyższym kodzie powinienem wstawić funkcję powodującą znikanie tego co się wygenerowało ale nie bardzo wiem co i gdzie wstawić.

Nadmienię jeszcze, że generowanie tego mam w STEP obiektu który pojawia się po zniszczeniu innego obiektu.

Posiadam GM:Studio Professional

Będę wdzięczny za każdą pomoc i dobre słowo.

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wklejaj bezsensownie przykładów/gotowców do gier, jeśli ich nie ogarniasz ;x to trochę bez sensu, jak na moje zdanie. Wklej do Create i tyle.

Nie rozumiem po co ten jad w Twojej wypowiedzi to raz.

Dwa to czytaj ze zrozumieniem. Czy gdzieś napisałem , że nie rozumiem tego kodu? Kod rozumiem doskonale, zastanawiałem się tylko co robię nie tak i kolega powyżej bardzo grzecznie i ładnie mi wytłumaczył i chwała mu za to.

Trzy to po co powtarzasz wypowiedź kolegi powyżej skoro nie wnosi ona nic nowego do tematu. Rozumiem, że chcesz sobie ponabijać posty aby potem błysnąć jaki to ja jestem "fajny"

No i cztery to kolego Dzień Edukacji się właśnie kończy to czas pakować kredki do tornistra bo jutro normalnie szorujesz do szkoły :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

No właśnie nie rozumiesz kodu, bo tworzysz w każdym kroku / klatce gry nowy system particli, dwa typy i nowy emiter, wiec po sekundzie masz 30 systemów, 60 typów i 30 emiterów. Po minucie 60x tyle. To i muli.

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ę...