Skocz do zawartości

HP nie jest przyklejone do potworkow.


unnem

Rekomendowane odpowiedzi

Czesc.

 

Mam maly problem z paskami zycia. sciaglem sobie jakis tutorial z tej strony i zrobilem wg. niego moje wlasne skrypty.

Wszystko ladnie dziala ale jak ustawiam zeby potwory sie poruszaly to paski zycia stoja w miejscu. probowalem zaznaczyc "relative" ale nic sie nie dzialo.

 

i jeszcze jedno pytanie co do skryptu (chcialbym poprostu go lepiej zrozumiec)

 

(event - kolizja z obiektem) other.hpbar=hp; (co to znaczy i co to robi?)

Odnośnik do komentarza
Udostępnij na innych stronach

Jak najbardziej zgadzam się z przedmówcą. Wstaw nam tu linka, albo kod który masz. I chyba już wiem w czym problem. Skrypt rysowania hp tylko raz jest wywoływany. Jeśli każdy wróg/obiekt/kosmiczny jeździeć, ma oddzielny pasek, to daj ten skrypt w draw, a potem dodaj taki kod

GML
draw_sprite_ext(jakieś_argumenty_sprawdź_je)
Jak chcesz mogę Ci wysłać cały kod na rysowanie hp. Tylko powiedz czy to tylko kwadracik, czy specjalny sprite.

EDIT:

(event - kolizja z obiektem) other.hpbar=hp; (co to znaczy i co to robi?)

Przy kolizji z obiektem, zmienna hpbar other (other - czyli obiekt z którym masz aktualnie kolizję), ustawia się na zmienną hp. Nie wiem czemu to ma służyć.

Odnośnik do komentarza
Udostępnij na innych stronach

zrobilem tak jak mowiliscie i dziala ale tylko 1 z 10 potworkow ma ten HP bar.

dodalem oba kody do tego zeby sprawdzic obie opcje naraz :P i sprite i draw a hor. gradient sa tylko na jednym z nich.

 

http://www.speedyshare.com/dGgfw/test.gmk

Odnośnik do komentarza
Udostępnij na innych stronach

Błąd już znalazłem ;x

W obj_ghost

GML (create)
bar=instance_create(x,y,hpvisible);

bar.rodzic=id

hp=100;

a w Step hpvisible

GML (step)
x = rodzic.x

y = rodzic.y

EDIT: Zdublowało, przepraszam ;c Zapomniałem, żeby nie klikać dwa razy wyślij.

Od razu wytłumaczę w czym był problem. W hpvisible był taki kod

GML
x=obj_ghost.x;

y=obj_ghost.y

Skąd ten obiekt ma wiedzieć do którego obj_ghost ma się przywiązać? Wybrał ten o najmniejszym id, tak zrobiły wszystkie. A other.hpbar=hp oznacza, że jak ktoś weźmie hp TEMU JABŁKU, to hp tego jabłka będzie twoje. Ale ogólnie ten sposób hp, mi się strasznie nie podoba, jak coś napisz, to Ci coś mogę zrobić.
Odnośnik do komentarza
Udostępnij na innych stronach

Każdy z obiektów potworów powinien mieć kod rysowania paska HP w swoim Draw. Pamiętaj, żeby zamiast draw_cośtam(200,200,itd.), co będzie rysowało te paski dokładnie w tej pozycji w roomie, pisać draw_cośtam(x+liczba,y+liczba,itd.), spowoduje to, że te paski będą rysowane w stałej odległości od danego obiektu.

Odnośnik do komentarza
Udostępnij na innych stronach

dobra dziala wszystko ladnie :) ale mam teraz 2 pytania wiecej.

co teraz dopisac zeby to HP znikalo?

probowalem wpisywac

(event collide) hp-=10;

albo hpbar-=10 ale nie dziala. (tak nazywa sie ten caly pasek hp i hpbar)

probowalem tez wpisac tam nazwe obiektu ktory maluje ten pasek ale mi wyskoczyl blad przy uruchamianiu gry.

Odnośnik do komentarza
Udostępnij na innych stronach

no bo on wlasnie umar na smierc
Naprawdę?

Ustaw, że jeśli ma mniej (obj_ghost) hp niż 1, to wtedy

GML
if(hp<=0)

{

instance_destroy();

with(bar){instance_destroy();}

}

A HP odejmujesz w serduszku, a nie w bohaterze.

To samo możesz zrobić w serduszku, ale wtedy mała zmiana

GML
if(hpbar<=0)

{

instance_destroy();

with(rodzic){instance_destroy();}

}

Tylko nie pamiętam jakie miałeś zmienne, hp albo hpbar w serduszku.

Odnośnik do komentarza
Udostępnij na innych stronach

Naprawdę?

Ustaw, że jeśli ma mniej (obj_ghost) hp niż 1, to wtedy

GML
if(hp<=0)

{

instance_destroy();

with(bar){instance_destroy();}

}

A HP odejmujesz w serduszku, a nie w bohaterze.

To samo możesz zrobić w serduszku, ale wtedy mała zmiana

GML
if(hpbar<=0)

{

instance_destroy();

with(rodzic){instance_destroy();}

}

Tylko nie pamiętam jakie miałeś zmienne, hp albo hpbar w serduszku.

błąd

najpierw usun wszystko inne a na koncu samego siebie, nie wiem czy w gm:s by twoj sposob dzialal, w poprzednich na pewno nie

wiec...

GML
with(rodzic){instance_destroy();

instance_destroy();

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