Skocz do zawartości

Problem z kombosami.


Adriann

Rekomendowane odpowiedzi

Więc tak. Witam wszystkich,wybaczcie że musze was znowu męczyć moimi problemami ale mam nadzieję że i tym razem nie zawiedziecie.

Więc chcę zrobić 3 ataki. Po naciśnięciu klawisza ataku(kl_atk),następny po naciśnięciu klawisza (kl_down) i (kl_atk) i ostatni po naciśnięciu (kl_up) i (kl_atk) Ale nie działa. Kiedy dodaję warunek pierwszy z naciśnięciem tylko klawisza ataku to inne nie działają,co jest nie tak?Proszę o pomoc.;)

GML
if keyboard_check_pressed(kl_atk) && akcja=false

{

image_index=0;

sprite_index=a_atk3;

image_speed=1;

akcja=true;

alarm[0]=3;

}

else

if keyboard_check(kl_down) && keyboard_check_pressed(kl_atk) && akcja=false

{

image_index=0;

sprite_index=a_atk4;

image_speed=1;

akcja=true;

alarm[0]=3;

}

else

if keyboard_check(kl_up) && keyboard_check_pressed(kl_atk) && akcja=false

{

image_index=0;

sprite_index=a_atk3;

image_speed=1;

akcja=true;

alarm[0]=3;

}

else

//Obrona:

if keyboard_check_pressed(kl_def) && akcja=false

{

image_index=0;

sprite_index=a_def;

image_speed=1;

akcja=true;

alarm[0]=3;

}

Odnośnik do komentarza
Udostępnij na innych stronach

Czytając po ludzkiemu twój kod to wychodzi na to, że aby akcja zaszła musisz nacisnąć trzy klawisze na raz, a nie kolejno. Mija się to z celem. Według mnie to powinieneś zrobić jakąś listę z użyciem dt_list i wtedy po pewnym czasie np. po 3 sekundach od wciśnięcia klawisza ataku sprawdzić całe combo, a klikając kolejny przycisk należy dodać kolejny element do listy oraz np. zwiększyć czas do końca combo.

 

Po prostu combo jest to lista KOLEJNYCH klawiszy które należy wcisnąć. Najlepiej KOLEJNOŚĆ zapisywać w LIŚCIE, które to w GML możemy stworzyć przy użyciu dt(stawiam, że od data - dane)_list(lista) - dt_list_create, *_add(...) itp.

 

Na początek musisz sam zrozumieć czym jest owe combo, a dopiero potem spróbować to przelać na kod.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja kombo robiłem na zasadzie jednej zmiennej (jednak dwóch).

np. klawisz a=1, klawisz b=10, klawisz c=100, klawisz d=1000. Każde naciśnięcie jakiegoś przycisku dodaje do zmiennej kombo odpowiednią wartość.

Potem switch, i np. jak kombo=1342 to robi tak.., a jak kombo=1111 to tak..

Odnośnik do komentarza
Udostępnij na innych stronach

To weź na początek daj tam same zmienne atak itp. i włącz przez Debug Mode i weź sprawdź czy te combo coś daje. Jak nie to mówię, spróbuj mojego sposobu bo wtedy też jest łatwo i to rozwinąć, a combo też się wtedy da zrobić jako, że w tej samej chwili.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if keyboard_check_pressed(kl_atk) && akcja=false // Jeżeli wciskam kl_atk

{

image_index=0;

sprite_index=a_atk3;

image_speed=1;

akcja=true;

alarm[0]=3;

}

else // else czyli jeżeli nie wciskam

if keyboard_check(kl_down) && keyboard_check_pressed(kl_atk) && akcja=false // a tutaj sprawdzasz czy wciskasz

{

image_index=0;

sprite_index=a_atk4;

image_speed=1;

akcja=true;

alarm[0]=3;

}

else

 

Wyjaśnienie w komentarzach, powinno być git ;)

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