Skocz do zawartości

Health jednostki


Rekomendowane odpowiedzi

Witam. Od niedawna pracuję nad grą tower defence. A więc zrobiłem wieżyczkę (gra jest podobna do ninjatown) i ona nie strzela, jednak wychodzi z niej mrówka gdzie chcesz. I ta mrówka stoi. I chcę aby miała życie. Jednak:

W eventach można tylko raz zrobić health. Jak to napisać w GML?

Konkretniej:

Chcę aby w create mrówka miała załóżmy 100 życia.

I colission to "Mszyca" życie -5.

 

Jednak chcę, że jak się zderzy z mszycą, ona zatrzymuje się, a mrówka nabiera spirte'a ataku i ona nabiera sprite'a ataku. I co 5 sekund mszyca zadaję mrówce 5 damage. A mrówa traci 5 hp. A mszyca ma 20 hp i mrówka atakuję też co 5 sek. I zabiera jej 10 hp. Jak to zrobić? Proszę o pomoc :D (jestem początkujący)

Odnośnik do komentarza
Udostępnij na innych stronach

Na klockach będzie ciężko. Tworzysz zmienną np. Hp i wstawiasz w create wszystkim owadom hp=100. Teraz trzeba użyć alarmu lub zwiększającej się zmiennej aby ustawić co jaki okres ma nastąpić atak i kiedy będzie atak to dać atakującemu kod other.hp-=5 czy ile tam zadaje obrażeń.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if collision_line (o_wrog.x,o_wrog.y,o_mszyca.x,o_mszyca.y,o_mszyca,true, true)

{

hp-=5;

speed=0;

sprite_index=spr_atak;

}

To sobie wstaw w stepie w piece of code, albo:

GML
hp-=5;

speed=0;

sprite_index=spr_atak;

W evencie kolizji z wrogiem czy czym tam.

Po co się babrać na klocach.

Odnośnik do komentarza
Udostępnij na innych stronach

Do phoenixa: I mi wychodzi:

unkown variable x

 

e: Zrobiłem tak:

Mrówce dałem w create:

GML
health=100

i w collision mszyca:

speed 0 i stoi w miejscu i:

GML
health=-5

 

I wychodzi mi że jak się z nią zderzy mrówa to od razu ginie. Wiem dlaczego. Jednak jak zrobić żeby mrówa traciła 5 health co 5 sekund?

Odnośnik do komentarza
Udostępnij na innych stronach

Ja juz poruszalem ten temat, nawet niedawno.

 

zamiast health mozesz uzyc globalnych, co do ataku, to

 

create:

global.tylkoraz = 0

kolizja mrowki z wrogiem:

if(global.tylkoraz = 0)
{
    global.zycie -= 5
    global.tylkoraz = 1
    alarm[1] = 2*room_speed
}

 

alarm[1]

alarm[1] = 2*room_speed
global.tylkoraz = 0

 

(od Gnyska :))

 

e: tu jest co 2 sekundy :P Ale 5 to nikomu sie nie bedzie chcialo grac xd

Odnośnik do komentarza
Udostępnij na innych stronach

Marker:

Zrobiłem wszystko tak jak trzeba i wychodzi mi:

 

ERROR in

action number 1

of Collision Event with object emszyca

for object mc - wojownik:

 

Error in code at line 3:

global.zycie -= 5

 

at position 6: Unknown variable zycie

Odnośnik do komentarza
Udostępnij na innych stronach

ojej, dodaj sobie w roomie cos takiego jak object global, ktory nie ma sprite'a i jest w jego create dopisane:

global.zycie = 100

I NIE ZAPOMNIJ umiescic obj. w roomie :) NO i zadziala ;P Sorry, zapomnialem to dodac; )

 

 

e: a ten caly obj global jeszcze Ci sie przyda, jak masz gre podzielona na poziomy.

Odnośnik do komentarza
Udostępnij na innych stronach

ojej, dodaj sobie w roomie cos takiego jak object global, ktory nie ma sprite'a i jest w jego create dopisane:

global.zycie = 100

I NIE ZAPOMNIJ umiescic obj. w roomie :) NO i zadziala ;P Sorry, zapomnialem to dodac; )

 

 

e: a ten caly obj global jeszcze Ci sie przyda, jak masz gre podzielona na poziomy.

 

Co ty gadasz on to musi zrobić na lokalnych bo skąd np. będzie wiedział ile ma zrobić global.żyć dla mrówek?

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