Skocz do zawartości

Kod czy Klocki


Rekomendowane odpowiedzi

Mam problem :(

Chcę aby nad jednostkami były wyświetlane ich paski HP

Object Bandit: Create: Set variable "hp" to 10

A teraz jak zrobić aby pojawił się prostokąt o parametrach (x,y - 10,x+hp,y - 2, 0)?

Kiedy umieszczę w draw to sprite Bandita znika i widać tylko ten pasek.

Próbowałem też zrobić oddzielny objekt, który latał by za banditem i wyświetlał jego pasek ale nie udało się.

 

Czy jest tu ktoś tak mądry i dobry, że podzieli się swoją wiedzą (w czyjejś grze LostLegacy było coś takiego zrobione, JAK?)

 

Podajcie też czy lepiej to zrobić na kodzie czy na klockach

 

Z góry dzięki! :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Dodaj to:

draw_sprite(sprite_index, 0, x, y);

 

Albo draw_sprite_ext.

 

EDIT:

Jak sprite ma pare klatek daj to:

for( i = 0; i <= image_number; i += 1)
draw_sprite(sprite_index, i, x, y);

 

Powinno dzialac. XD

 

 

EDIT2:

Dzieki. Ja tu kombinowalem.....

Odnośnik do komentarza
Udostępnij na innych stronach

Albo zrób w osobnym obiekcie.

Zrobiłem! Lepiej wam to wytłumaczę

Objekt Bandit ma dwa sprite'y: Bandit_go i Bandit_attack, a te sprite'y mają po 8 klatek. Gdy tworzę nowy objekt w kolizji z banditem porusza się za nim pokazując pasek HP ale gdy bandity na siebie wejdą u jednego pasek znika a u drugiego przybywa następny. Można zrobić zmienną "adress" u bandita z wartością random(100000) ale co będzie jeśli adressy będą takie same? Szansa na takie coś wynosi 0.0001%

Odnośnik do komentarza
Udostępnij na innych stronach

Yyy. I właśnie tego nie lubę. Brak wam wiedzy ogólnej:

draw_sprite(sprite_index,image_index,x,y);

p = (hp / 10) * 100;
drwa_rectangle(x,y,x+p,y-2,0);

 

edit

Nicolas@ zamiast 0 daje się image_index.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

MK: Jakbyś sprawdzał przykłady, które są na gmclanie, to już byś znał rozwiązanie. "Czasowy pasek energii". Wystarczy przerobić by pasek nie znikał i gotowe. A jak nie chcesz większej liczby obiektów, to w draw możesz dać rysowanie, a potem draw_sprite(sprite_index,image_index,x,y);

Możesz zrobić jeszcze osobny obiekt, który będzie wyświetlał paski energii wszystkim określonym typom obiektów. Możliwości jak widać jest wiele.

 

Nicolas: Od tego jest image_index.

Odnośnik do komentarza
Udostępnij na innych stronach

ja zrobił bym nowy obiekt np "pasekHP" i w create Bandita dal np:

HP=instance_create(x,y,pasekHP);

 

a w event_step_end

HP.x=bandit.x;
HP.y=bandit.y-10;

 

gdzie y-10 to wysokosc nad glowa bandita na jakiej ma byc pasek.

 

Potem tylko w bandicie ze jak dostanie w leb to od HP ma sie odejmowac iles tam :P

 

Dzieki temu napewno unikniesz problemu ze jak dostanie jeden bandit to wszystkim odejmi sie energia ;) bo kazdy ma swoj wlasny stworzony przez siebie pasek z energia. Jak dla mnie prosty i najlepszy sposob.

Odnośnik do komentarza
Udostępnij na innych stronach

Pablo, ciekawe... Ale sam sobie poradziłem. Chociaż twój pomysł jest krótszy ale nie jestem przekonany co do niego (niezbyt się czuję wśród kodów). Wygląda zachęcająco... Może jeśli ktoś inny będzie miał taki sam problem jak ja to użyje twojego sposobu.

Topic end.

Odnośnik do komentarza
Udostępnij na innych stronach

Yyy. I właśnie tego nie lubę. Brak wam wiedzy ogólnej:

CODE

draw_sprite(sprite_index,image_index,x,y);

 

p = (hp / 10) * 100;

drwa_rectangle(x,y,x+p,y-2,0);

 

 

edit

Nicolas@ zamiast 0 daje się image_index.

 

Zamiast image_index można jeszcze krócej. -1 :)

 

draw_sprite(sprite_index,-1,x,y);

:P

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
na tym linku niewiele się dowiedziałem, skąd mam wziąć ten ActionDecoder?

Pod tym linkiem wszystko było...

A action decodera masz na tej stronie w dziale download. Naprawdę 15 sekund wysiłku jeszcze nikomu nie zaszkodziło:

https://gmclan.org/index.php?pliki=2

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

ja do dziś mam go na liście szybkiego uruchamiania, kiedyś używałem go non stop, a dzisiaj używam tylko jednej jego funkcji - ustalania kolorów, dzięki czemu nie muszę używać funkcji make_color_rgb, tylko od razu daję odpowiednią cyferkę i zazwyczaj robie z niej constansa, naprzykład c_lightgreen albo c_pink dzięki czemu łatwiej się odwołać w trakcie gry do jakiegoś konkretnego koloru.

Szkoda tylko że nie maw wersji kompatybilnej z GM 6.1, pomogło by to nowicjuszom

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