Skocz do zawartości

Lodowy pocisk na spricie bohatera


pankracy

Rekomendowane odpowiedzi

Cześć wszystkim.

 

Borykam się z takim problemem.

Zrobiłem przeciwnikowi pocisk,który w momencie styczności z moim bohaterem;zatrzymuje mojego bohatera na czas 1sekunda..

I teraz chciałbym jeszcze żeby ten pocisk nałożył na mojego sprita bohatera efekt lodu,czyli tak jakby zamarzł mój bohater.

próbowałem dodając to image_blend=c_blue ale to nie jest zamierzony efekt,bo tylko zmienia kolor na niebieski mój bohater,a on ma się na tą sekundę zamrozić..

 

to mój kod w kolizji bohatera z tym lodowym pociskiem

 

GML
// kolizja bohatera z lodowym pociskiem

frozen = true;

frozen_x = x;

frozen_y = y;

alarm[0] = 30 // 1 sekunda zamrozenia

image_blend=c_blue

 

 

 

step bohatera

 

 

GML
// gdy bohater jest zamrozony zatrzymujemy go

if(frozen==true)

{

x = frozen_x;

y = frozen_y;

}

 

 

alarm0 u bohatera

 

GML
// alarm[0]

frozen = false; // powracamy do normalnego stanu

 

 

no i teraz kod pocisku lodowego

 

create

 

GML
if obj_psyhodoktorek.t=2

hspeed=5

else if obj_psyhodoktorek.t=1

hspeed=-5

 

vspeed=-8

alarm[0]=5*20

rot=0

 

 

step

 

GML
if place_free(x,y+1)

gravity = 0.3

else

gravity = 0;

 

no i kolizja pocisku z moim bohaterem

GML
tu dodałem klocek destroy the instance
Odnośnik do komentarza
Udostępnij na innych stronach

Najprościej: Zrób grafikę kostki lodu i nakładaj ją na sprita postaci.

 

 

 

Czyli w momencie zetknięcia z lodowym pociskiem zmienić na sprite lodowy.no ok,to tak chciałem zrobić,ale czy jest też inna metoda? może w draw? czy emitery?

taki efekt lub podobny jak w Mortal Kombat ma Sub-zero..

czyli strzela wróg we mnie no i leci lodowy pocisk,a po chwili zamarzam.

Odnośnik do komentarza
Udostępnij na innych stronach

GML (draw)draw_self()

if(frozen==true)

{

draw_sprite(x,ysprite kostki lodu)

image_index-=image_speed//Żeby podczas zamrożenia nie animowało postaci.

}

 

No niestety to nie wyświetla mi sprita lodowego na spricie bohatera

 

draw

 

GML
draw_self()

if(frozen==true)

{

draw_sprite(spr_lodowy,0,x,y );

image_index-=image_speed

}

 

daje to oczywiście w draw tego mojego pocisku,a w create pocisku dałem frozen=false;

 

a druga sprawa..jak zrobić żeby mój bohater jak lodowy pocisk go w powietrzu złapie,żeby nie opadał w doł,tylko się zatrzymał na ten czas co ustawiłem,czyli na sekundę,i dopiero po sekundzie spadł..

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz też wykorzystać draw_sprite_part żeby uzyskać efekt stopniowego zamarzania postaci po trafieniu (oczywiście to samo jest do uzyskania dając kilka klatek animacji, ale z użyciem parta wystarczy, że masz 2 - dla pełnego rozmrożenia i dla pełnego zamrożenia).

 

daje to oczywiście w draw tego mojego pocisku,a w create pocisku dałem frozen=false;

 

Ale to chyba w postaci powinieneś dać. Bo nie niszczysz przypadkiem pocisku po trafieniu? Nawet jeżeli nie to współrzędne x i y powinny być z postaci a nie z pocisku.

 

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Wrzuć do klamry po if(frozen), czy to w ogóle się wykonuje. Niech będzie show_debug_message("test");

Potem sprawdź konsolę. Może frozen Ci się w ogóle nie zmienia na true, albo tylko na jeden tik i przestaje, niezauważalnie.

edit

daje to oczywiście w draw tego mojego pocisku,a w create pocisku dałem frozen=false;

Skoro chcesz to rysować na graczu, to daj w draw gracza, bo z tego co zrozumiałem dałeś w draw pocisku.

Odnośnik do komentarza
Udostępnij na innych stronach

Wrzuć do klamry po if(frozen), czy to w ogóle się wykonuje. Niech będzie show_debug_message("test");

Potem sprawdź konsolę. Może frozen Ci się w ogóle nie zmienia na true, albo tylko na jeden tik i przestaje, niezauważalnie.

edit

 

Skoro chcesz to rysować na graczu, to daj w draw gracza, bo z tego co zrozumiałem dałeś w draw pocisku.

 

 

No to fakt..muszę to dodać do bohatera w draw.

Threef strzelileś tam.literówkę.Z ostatniej Twojej uwagi.wziąłem.sobie to do serca i najpierw sprawdziłem.dokumentacje;-)

Dobra..a jak teraz zatrzymać bohatera jak go.lodowy pocisk dosięgnie jak jest bohater w powietrzu?

Odnośnik do komentarza
Udostępnij na innych stronach

No to fakt..muszę to dodać do bohatera w draw.

Threef strzelileś tam.literówkę.Z ostatniej Twojej uwagi.wziąłem.sobie to do serca i najpierw sprawdziłem.dokumentacje;-)

Dobra..a jak teraz zatrzymać bohatera jak go.lodowy pocisk dosięgnie jak jest bohater w powietrzu?

Twoja postać posiada grawitację? Masz parę możliwości.

1. W trakcie kolizji ustawiać grawitację na 0

2. Sprawdzać czy frozen==false, jeśli tak, to niech tylko wtedy wykonuje się kod dodawania grawitacji.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Twoja postać posiada grawitację? Masz parę możliwości.

1. W trakcie kolizji ustawiać grawitację na 0

2. Sprawdzać czy frozen==false, jeśli tak, to niech tylko wtedy wykonuje się kod dodawania grawitacji.

 

Naturalnie moja postać ma grawitacje..inaczej to jakby to funkcjonowało.

vspeed u mnie vspd mam tak przypisałem

 

Hgter dziękuje bardzo wykorzystam draw_sprite_part to będzie lepszy efekt niż animacja zwykła przy draw_sprite

Odnośnik do komentarza
Udostępnij na innych stronach

Threef strzelileś tam.literówkę.Z ostatniej Twojej uwagi.wziąłem.sobie to do serca i najpierw sprawdziłem.dokumentacje;-)

Hmm... Widzę że brzydko zrobiłem, na lenia. Nie chciało mi się dokładnie sprawdzać argumentów. No i poza komentarzem nie opisałem tam nic.

Nie wiem czemu wpadło mi do głowy że argumenty są na odwrót.

 

Masz zmienną która mówi czy postać jest zamrożona. Jeżeli jest true to zablokuj poruszanie.

A jak najbardziej można robić platformówki bez wbudowanej grawitacji. Można ją sobie zakodować samemu. Prosto dodając jakaś zmienną do y.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm... Widzę że brzydko zrobiłem, na lenia. Nie chciało mi się dokładnie sprawdzać argumentów. No i poza komentarzem nie opisałem tam nic.

Nie wiem czemu wpadło mi do głowy że argumenty są na odwrót.

 

Masz zmienną która mówi czy postać jest zamrożona. Jeżeli jest true to zablokuj poruszanie.

A jak najbardziej można robić platformówki bez wbudowanej grawitacji. Można ją sobie zakodować samemu. Prosto dodając jakaś zmienną do y.

 

 

 

dobra z grawitacją to ogarnę...

 

a teraz tak,bo wiadomo co chwile zmienia się położenie mojego sprita w trakcie walki z wrogiem..i obecnie mój sprit,który ma się na bohatera nałożyć,to pokazuje się po jego boku..myślę ile mu dać x ile y?

 

GML
///postac zamarza od pocisku

draw_self()

if(frozen==true)

{

draw_sprite(spr_mrozony_pocisk,0,x,y );

image_index-=image_speed

}

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