Skocz do zawartości

Health bar


Rekomendowane odpowiedzi

Jak zrobić healthbar, jak coś takiego niżej. Chodzi mi o taki kształt i po odejmowaniu energie niech usuwa kwadracik i niech robi się coraz bardziej przezroczysty aż zniknie. Czyli jak mnie kula trafi niech zabiera jeden kwadracik, a kwadracików ma być pięć.

 

 

bez_tytu_u.png

 

Edit: Za pomoc creditsy !!!!!!!!!!!!!!!!!!!

Odnośnik do komentarza
Udostępnij na innych stronach

Robisz sprite'a z 5 klatkami, taki jak podałeś. W pierwszej klatce będzie tylko 1 kratka, w drugiej 2, itd.

W draw piszesz coś takiego:

 

GML
draw_sprite(...); // rysowanie sprite'a obiektu

draw_sprite( sprite_hp, hp-5, x, y ); // zakładając, że Hp wynosi od 1 do 4</span>

 

EDIT:

Auć, nie zauważyłem tej wzmianki o znikaniu. W takim razie użyj kodu Platyny ( post niżej ).

Argumenty draw_sprite_ext:

draw_sprite_ext( sprite_index, image_index, x, y, image_xscale, image_yscale, image_rotation, image_blend, image_alpha );

Odnośnik do komentarza
Udostępnij na innych stronach

Zrób sobie sprite, który w kolejnych klatkach ma kolejne kwadraciki. I niech te kwadraciki w tym spritcie będą odpowiedni ułożone by można je było na tych samych x i y rysować. Będzie prościej.

 

W Create stwórz sobie takie zmienne:

GML
zycia=5; //ilość żyć (maksymalna ilość kwadracików)

znika=0; //Gdy ta zmienna będzie większa niż 0 mamy rysować dodatkowy znikający kwadracik i dodatkowo będzie oznaczać jego alphę</span></span>

 

W Step daj:

GML
if(znika>0) //jeśli jakiś kwadracik ma znikać

znika=max(znika-0.1 , 0); //to częściowo zanika. Funkcja max jest użyta by ci nigdy na wartość ujemną nie zeszło niezależnie od tego ile odejmujesz.</span></span>

 

W Draw:

GML
for(i=0;i<zycia;i+=1) //Tyle ile mamy zyc

draw_sprite(spr_kwadraciki,i,30,30); //tyle kwadracików rysujemy

if(znika>0) //Jeśli jakiś znika

draw_sprite_ext(spr_kwadraciki,zycia,30,30,DALEJ NIE PAMIĘTAM KOLEJNOŚĆ ARGUMENTÓW ALE JAKO "alpha" UŻYJ zmiennej znika); //rysujemy znikający kwadracik</span></span>

 

 

Teraz przy każdej stracie życia musisz zmniejszyć wartośc zmiennej zycia o 1 oraz ustawić zmienną znika na 1

Odnośnik do komentarza
Udostępnij na innych stronach

Si. Ale nie zwiększać czy zmniejszać tylko wymnożyć. Zamień to pierwsze draw_sprite na draw_sprite_ext i jako alphe daj X

W tym drugim draw_sprite_ext daj za to (znika*X)

 

A w Create sobie stwórz taką zmienną X która będzie określać przezroczystość. wartość od 0 do 1.

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