Adriann Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 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 Więcej opcji udostępniania...
Raalsky Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 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 Więcej opcji udostępniania...
Adriann Opublikowano 7 Listopada 2011 Autor Udostępnij Opublikowano 7 Listopada 2011 No tak,ale w tym przypadku nie jest konieczna lista, mogą być wciśnięte w tym samym czasie,gdyby chodziło o 3 lubi więcej klawiszy naraz to tak,ale na 2 się nie opłaca kombinować Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kyniu774 Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 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 Więcej opcji udostępniania...
karolo320 Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 nie bardzo rozumiem Twój kod, bo nie za bardzo chce mi sie myslec, ale w kazdym warunku masz "and akcja=false" a potem zmieniasz je na true. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Adriann Opublikowano 7 Listopada 2011 Autor Udostępnij Opublikowano 7 Listopada 2011 @karolo320 To jest po to by nie można było w trakcie jednego ciosu zaczynać następnego. wtedy wygrywałby każdy kto umie najszybciej klikać,o animacji nie wspomnę Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raalsky Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 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 Więcej opcji udostępniania...
Roki Opublikowano 8 Listopada 2011 Udostępnij Opublikowano 8 Listopada 2011 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę