Radarow Opublikowano 23 Sierpnia 2014 Udostępnij Opublikowano 23 Sierpnia 2014 Powoli robię swoją bijatykę 2D, ale im dalej tym coraz więcej problemów i bałaganu w mojej grze. Chcę to teraz ogarnąć i nawet powoli idzie tylko największym problemem jest system walki, mam w głowię grę z masą postaci do grania przez co z każdą następną dochodzą nowe ciosy. Mam to tak wszystko biednie zrobione że gdy bije to zamieniam się w inny obiekt, a przeciwnik ma na mnie kolizje i obrywa, tylko że ten sposób wymaga za dużo pracy i robi się bałagan. Mam jak na razie 6 postaci a każda z nich ma po kilkanaście kolizji na różne ciosy innej postaci. Na pewno jest jakiś lepszy sposób, szukałem ale nie znalazłem nic co by jakoś znacząco pomogło. Macie jakieś pomysły? jakby co to nie jest bijatyka w której liczą się hitboxy, gra przypomina Little Fightera i gracz po prostu obrywa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 UWAGA, nie wiem czy to najlepszy możliwy sposób! W CREATE robisz zmienną. Nazywasz ją dla przykładu atak. Możesz sobie gdzieś w komentarzu (czyli //komentarz) wpisać co szczególne liczby oznaczają. Powinno to wyglądać tak. GML (create) atak=0 //1 push, 2 frozen fire, 3 super-duper elo skill</span></span></span> Przydałoby się mieć jakieś maski ataków. Chodzi o coś takiego: Jeśli atakujesz w prawo, to nie chcesz żeby atakowało kogoś tyłkiem czy głową. Więc dopasowujesz sobie maskę do postaci, aby kolizja była tylko po prawej stronie. Przy atakowaniu zmieniasz maskę na tą dobrą oraz zmienną atak. Na evencie animation end, możesz mieć żeby wszystko wracały do normy (maska kolizji i atak=0). W przeciwniku sprawdzasz tylko jaki jest atak, żeby dopasować dmg i ewentualne efekty. GML (collision) wAtak=other.atak switch(wAtak) { case 0: //NIC break; case 1: {if alarm[0] = -1 then alarm[0] = 30 zabranyDMG=30} // to żeby nie robić milion alarmów break; case 2: {if alarm[0] = -1 then alarm[0] = 30 zabranyDMG=48} break; //I tak dalej } Teraz odbieranie HP GML (alarm0) zycie-=zabranyDMG Ale za chwile ktoś pewnie napiszę lepszy kod :) @OffTopic Nigdy nie robiłem bijatyk, zawsze w moich nibyGrach się strzelało, mniej zachodu ;> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 //1 push, 2 frozen fire, 3 super-duper elo skill crtl+shift+D takie rzeczy tam się wpisuje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 najprościej i najelastyczniej byłoby zrobić każdy atak/rodzaj ataku oddzielnym skryptem, który fajterzy gdzieś tam w stepie sobie wykonują przez execute_script, i zrobić jakiś system hitboxów (dla niewymagających gier przy ograniczonej rozróbie nawet niewidzialne obiekty mogłyby wystarczyć) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Radarow Opublikowano 24 Sierpnia 2014 Autor Udostępnij Opublikowano 24 Sierpnia 2014 Zrobiłem sposób z tworzącym się niewidzialnym obiektem co pozwoliło mi wywalić pare niepotrzebnych kolizji, ale ten sposób jest troche ograniczony. Co do przykładu Sutikku to tak średnio u mnie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 ta metoda jest właśnie bardzo "nieograniczona", bo operujesz na zwykłym obiekcie który może robić wszystko to, co inne obiekty, np. może śledzić gracza, który takiego hitboxa stworzył, łatwo zmieniać swoje zmienne, maskę, ma własne alarmy, etc. zwróć uwagę na to, że niewidzialnym instancjom możesz przekazywać parametry, np. w ten sposób GML hitbox = instance_create ( x + 6346 , y + 45 , obj_hitbox ); hitbox.matka = id; hitbox.mask_index = spr_hdfhd; hitbox.obrazenia = 7; hitbox.odrzut = 6; hitbox.niewiem = 476; właściwie mógłbyś zrobić sobie jeden obiekt hitbox i jechać z tym Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 Do bijatyk przydadzą się timelines. Można tam zrobić animacje z określoną jej akcją, Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 Do bijatyk przydadzą się timelines. Można tam zrobić animacje z określoną jej akcją,da się zrobić system ataków za pomocą timeline'ów, ale operowanie na nich nie jest tak wygodne jak po prostu napisanie sobie skryptów, które zrobiłby to samo z użyciem jakiejś własnej zmiennej do mierzenia czasu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Radarow Opublikowano 24 Sierpnia 2014 Autor Udostępnij Opublikowano 24 Sierpnia 2014 No masz racje. Nie zagłębiałem się jak na razie w wykorzystanie tego obiektu, a teraz mam kilka pomysłów i chyba to jak narazie najlepsze rozwiązanie do mojej gry, no chyba że jeszcze ktoś ma jakiś pomysł. Dzięki wszystkim za pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 da się zrobić system ataków za pomocą timeline'ów, ale operowanie na nich nie jest tak wygodne jak po prostu napisanie sobie skryptów, które zrobiłby to samo z użyciem jakiejś własnej zmiennej do mierzenia czasu To zależy. Mi było wygodnie jak robiłem animację wybuchu od Maze Strategy zadający dmg o odpowiednim obszarze działania i pozycji w poszczególnych klatkach tej animacji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 To zależy. Mi było wygodnie jak robiłem animację wybuchu od Maze Strategy zadający dmg o odpowiednim obszarze działania i pozycji w poszczególnych klatkach tej animacji.tak, ale ze względu na interfejs edytora timeline'ów balansowanie takiej gry złożonej z np. 14 postaci po 12 ataków może być ciut bolesne, poza tym kod daje ci możliwość łatwego wykonywania danej czynności przez wiele klatek timeline'y mają swoje zalety (np. to że gm sam dba o ich wykonywanie i funkcja shift w edytorze), ale należy zdecydować, czy w danym przypadku przy danej ilości elementów ich użycie jest dobrym rozwiązaniem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 Faktycznie miałem tego mało, 4 rodzaje wybuchów i może dlatego nie zauważyłem że jest to uciążliwe. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 MUGEN-y stosują system 'stanów' i 'flag'. Każda kombinacja klawiszy zmienia stan postaci. Każdy stan posiada kod inicjujący, w nim można np. napisać, żeby przy zmianie stanu atakowało wroga przed postacią. Istnieje kilka globalnych stanów (mają przypisane ujemne liczby) oznaczające np. bezczynność, bycie martwym itp. Flagi pozwalają jednemu stanowi przystosowanie się do zachowania postaci (np. stan 150 odpali tylko, gdy flaga 'AIR' jest włączona). Stany również mogą być flagami. System jest bardzo złożony i nie ogranicza się jedynie do zmiany stanów (można też tworzyć nowe obiekty, klony, pociski), ale dzięki niemu można stworzyć dowolną postać z każdej istniejącej bijatyki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 24 Sierpnia 2014 Udostępnij Opublikowano 24 Sierpnia 2014 Racja kiedyś się bawiłem toolami do Mugena, niezła zabawa tam dało się zrobić wszystko. Mugen to potężny silnik do bijatyk 2D. Tutaj jest wiki http://elecbyte.com/wiki/index.php/Main_Page można się wzorować na paru świetnych rozwiązaniach. 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ę