Skocz do zawartości

Akcja po zakończeniu animacji


Ignatus

Rekomendowane odpowiedzi

Podejrzewam że podobny temat poruszany był wielokrotnie ale nie mogę nigdzie znaleźć żadnej odpowiedzi.Sprawa wygląda następująco

 

Dana akcja ma się wydarzyć w momencie zakończenia animacji, np.skakanie w platformówce- animacja pokazuje jak postać szykuje się do skoku i wybija w górę i dopiero w tym momencie ma się poruszyć w górę.

 

Próbowałem kilkoma sposobami ale nic mi to nie dało

 

1.If (image_index=ostatnia_klatka_animacji) {skok}- nic się nie dzieje jakby nie było takiej komendy (podobnie jeżeli użyje image_index>image_number)

2.Event Animation_end - próbowałem kilku kombinacji ale szczerze powiem w ogóle nie ogarniam jak to działa (do której animacji się odnosi skoro postać je zmienia)

 

Pytanie banalne bo przecież w każdej grze używany ten element ale nie potrafię ruszyć tematu...

Odnośnik do komentarza
Udostępnij na innych stronach

Podaj dokładnie kod. Może np.: zapomniałeś, że numer ostatniej klatki=ilość klatek-1, albo zły kod skakania ;)

A co do drugiego, to chyba odnosi się do animacji aktualnego sprite'a. Jeżeli zmienisz, to do tego na który zmienisz, ale mogę się mylić :)

Odnośnik do komentarza
Udostępnij na innych stronach

Aktualnie kody które testowałem zostały usunięte bo mi zaśmiecały a i tak nie działały, pominąłem problem i ruszyłem dalej ale teraz wróciłem do tego i muszę jakoś to rozwiązać.

 

 

W jaki sposób robi się to "standardowo" , czy metoda z "image_index=" jest prawidłowa tylko coś pomyliłem czy to zły trop? Jak Wy to załatwiacie w swoich grach?

Odnośnik do komentarza
Udostępnij na innych stronach

.Event Animation_end - próbowałem kilku kombinacji ale szczerze powiem w ogóle nie ogarniam jak to działa (do której animacji się odnosi skoro postać je zmienia)

może daj even animation end i w nim "if sprite_index=odpowiedni_sprite {rób rzeczy}" (zakładając, że każda animacja to oddzielny sprite)

 

 

napisałem coś w tym dziale, yay

Odnośnik do komentarza
Udostępnij na innych stronach

(zaznaczam że jestem BARDZO początkujący)

 

GML
if (keyboard_check(ord('W'))) && instance_place(x,y+clamp(y,5,10),obj_brick) && jump =true {

sprite_index=spr_ground_jumpnow

if (image_index=4){vspeed-=11}

}

 

Nie dzieje się absolutnie nic

 

Lub

 

GML
if (keyboard_check(ord('W'))) && instance_place(x,y+clamp(y,5,10),obj_brick) && jump =true {

sprite_index=spr_ground_jumpnow}

 

i w animation_end

 

GML
if (sprite_index=spr_ground_jumpnow){vspeed=-11}

 

Także zerowa reakcja

 

Oczywiście normalnie skakanie działa, tylko że wygląda dość prostacko,mogę zmienić animację w czasie skoku , ale mi chodzi tylko o to żeby akcja rozpoczeła się dopiero kiedy cała animacja zostanie zakończona..

Odnośnik do komentarza
Udostępnij na innych stronach

Wiesz możesz zawsze zrobić warunek że gdy sprite_index jest równy sprite'owi z animacją i image_index jest równy ostatniej klatce animacji wtedy wykonuj jakąś tam inną akcje, jeśli ucinałby taki kod ostatnią klatkę to po prostu ją zdubluj. :D Poza tym jest taki event w other jak animation end czy coś takiego z warunkiem na sprite_index też powinno działać. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli robisz kod z image_index=ileśtam, musisz brać pod uwagę szybkość animacji.

Jeśli ustalisz image_speed=1, to będzie Ci się zwiększało co 1, jeśli ustawisz na 0,5 to zwiększa się o 0,5, pewnie ustawiłeś np image_speed=0.3 i wtedy nie będziesz mógł osiągnąć image_index=4, będzie 3.9 lub 4.2.

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