Skocz do zawartości

Atakuj na wroga po kilku sekundach


ZyperPL

Rekomendowane odpowiedzi

Mam object bohater i karaluch.

Jeśli dystans do karalucha jest mniejszy niż 3 to atakuj=1.

Jeśli atakuj=1 i naciskam lewy przycisk myszy, karaluch.hp-=10.

Teraz mogę zaatakować jedynie po 5 sekundach... Jak to zrobić?

I jak zrobić, że gdy atakuje postać ma inną animację? Np. ataku?

Odnośnik do komentarza
Udostępnij na innych stronach

Teraz mogę zaatakować jedynie po 5 sekundach... Jak to zrobić?

Alarm. Ustawiasz sobie go na: " 5*room_speed " (5 sekund to wynosi hjehje). I dopóki nie dojdzie do -1 czy tam 0 (o tym już było :S ), to nie możesz atakować.

I jak zrobić, że gdy atakuje postać ma inną animację? Np. ataku?

Jeśli jest jakaś tam zwykła animacja + ty atakujesz --> zmień animację na tą z atakiem.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if alarm[666]=0

if //chcesz atakowac i atakujesz no bo mozesz

{

//atakujesz GZ

alarm[666]=5*room_speed

sprite_index=ATAAAAK

}

 

GML
if alarm[666]>0 alarm[666]-=1

Jak nie masz nic w evencie alarmu, to odejmujesz ręcznie.

 

I w animation end (taki event):

GML
if sprite_index=ATAAAAK sprite_index=NORMAL
Odnośnik do komentarza
Udostępnij na innych stronach

Raczej:

 

GML
if alarm[1]<=1 && mouse_check_button_pressed(mb_left) && distance_to_object(karaluch)=<3

{

karaluch.hp-=10

alarm[1]=5*room_speed

}

 

Ale zrobiłbym tak:

Create:

GML
czas_czekania=5*room_speed

 

Step:

GML
czas_czekania-=1

if czas_czekania<=1 && mouse_check_button_pressed(mb_left) && distance_to_object(karaluch)=<3

{

karaluch.hp-=10

czas_czekania=5*room_speed

}

Odnośnik do komentarza
Udostępnij na innych stronach

Po prostu dałeś to u bohatera karaluch.hp-=10 jak w moim przykładzie

Zrób tak że robak sprawdza czy jest dostatecznie blisko, i czy wojownik atakuje

Jeżeli te dwie funkcje są prawidłowe zabiera dla danego robaka hp.

Nie używaj żadnych global ani "nazwa obiektu karalucha"-=10.

 

W EDIT dam poprawiony kod z wytłumaczeniem. ^_^

 

Edit:

U bohatera(create):

GML
czas_czekania=5*room_speed

 

U bohatera(Step):

GML
czas_czekania-=1

 

U karalucha(Step)

GML
if bohater.czas_czekania<=1 && mouse_check_button_pressed(mb_left) && distance_to_object(bohater)=<3

{

hp-=10

bohater.czas_czekania=5*room_speed

}

 

Jeżeli masz jeszcze jakieś problemy z tym lub czymkolwiek pisz na PW.

A jeżeli jeszcze z tym jest coś nie tak to wyślij na PW projekt (gra.gmk) lub jego część do poprawy.

Nie bój się nie ukradnę i tak mam swój. :lol: :bye1:

Odnośnik do komentarza
Udostępnij na innych stronach

Wykroiłem trochę rzeczy z projektu i zaraz Ci wyśle, bluks.

Na razie i tak tam nic nie ma :P

Mam nadzieje, że pomożesz mi jakoś to naprawić, i mam jeszcze jedno pytanie do Ciebie.

Karaluch ma w draw wyświetlanie HP, ale jak jest kilka karaluchów to to hp, wcale się nie wyświetla :/

Odnośnik do komentarza
Udostępnij na innych stronach

GML
instance_nearest(x,y,karaluch).hp-=10

To wtedy jak karaluch będzie nawet o kilometry dalej zabierze mu życie.

Ale ale ale ależ NIE.

GML
if bohater.czas_czekania<=1 && mouse_check_button_pressed(mb_left) && distance_to_object(bohater)=<3

GML
distance_to_object(bohater)=<3

A właśnie dlatego nie.
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ę...