dexter19 Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Witam Wiem że pisałem już podobny temat ale ten jest bardziej złożony. Chciałbym zrobić bossa który obraca się we wszystkie strony czyli że np. odbije się od ściany to obje się w do tyłu po skosie. Jednego bossa mam takiego ale on nie ma zmienianej animacji. Tak to wygląda i powiedzcie i proszę jak to zmienic na takie aby było dobrze i wiem że brakuje kilku elementów [PLIK] PS.Robię na GM8 Lite i wiem zrobiłem to klockami z jakiegoś przykładu dla początkujących ale kodem też przyjmę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Czyli chcesz żeby boss obracał się w kierunku w którym idzie? GML (step) image_angle=direction // rotacja obrazu jest równa kierunkowi</span></span> Tylko, że wtedy musi się poruszać poprzez zmienną direction np. GML (step) ii-=1 // co step zmniejsza licznik if ii < 0 // sprawdza czy licznik doszedł do zera { ii =30 // od nowa ustawia licznik speed = 2 // ustawia prędkość direction=random(360) // losowy kierunek } Ale taki kod tylko jeśli na bossa nie działa grawitacja. Jeśli masz grawitację to musisz zrobić inny kod na poruszanie. Wtedy możesz zmieniać image_angle (kierunek od 0 do 360). Do wersji lite chyba musisz dodać w sprite klatki, za pomocą jakichś funkcji. Jest to w FAQ, dokładnie nie pamiętam przepraszam. Gra to platformówka? Odpisz, to postaram się coś zrobić :) P.S. Czy ty tam masz object258? Zwariowałeś czy jak? ;O Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Gra to TOP-Down. A codo obiektu to po prostu zrobiłem na szybko i nie nazwałem go. Znalazłem w FAQ ale boss idzie tylko po lini prostej omijając przeszkody, a gdy dotyka prostej ściany obrazek przedstawia go jak idzie do tyłu a nie do góry Tak to wygląda Plik Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 To w takim razie Stwórz animację obracającego się ludzika (można do tego użyć opcji 'Animation->Roation sequence' w 'Edit sprite' ). A następnie wpisz w STEP: GML (step) image_single = direction * image_number/360; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Zrobiłem to i spójrz post wyżej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Postaram Ci się to zrobić, za bardzo nie zmieniając tego co masz i wstawiając komentarze. Potem zedytuje ten komentarz, więc śledź ;p PS Najlepiej by było gdybyś wysłał .gmk, ale coś spróbuję, bez gmka. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Ok ale nie wiem jak wysłać ci ten fragment Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 W step masz klocek "Start moving in direction". Może spróbuj to zamienić na ten drugi klocek, niebieski. A żeby wartość była losowa: Ponieważ u Ciebie się chyba rusza po kątach prostych, to możesz w direction dać : choose(90, 180, 270, 360). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Zignoruj to co napisałem poprzednio bo za szybko to napisałem. Postac porusza się chaotycznie i zmienia kierunki bez obijania się od ścian Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Hmmm na klockach się znam jak osioł na szczekaniu, nie będę potrafił Ci pomóc. Mogę jedynie polecić przerzucenie się na kod. Oczywiście możesz zrobić tak aby np. zmienna __nazwa__ w momencie wylosowania szansy miała __nazwa__=choose(90, 180, 270, 360), a w tym klocku w direction dał __nazwa__. Chciałem pomóc ale używanie klocków przerasta moje możliwości ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Ty nie znasz się na klockach a ja na kodach a przynajmniej nie za dobrze.Nie rozumie nic co napisałeś sorry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Ok tłumaczę jak bym to zrobił, wykorzystasz lub nie, takie kopiuj-wklej, jest bez sensu. GML (create) ii=5 GML (step) ii-=1 // co step zmniejsza licznik if ii < 0 // sprawdza czy licznik doszedł do zera { ii =30 // od nowa ustawia licznik speed = 2 // ustawia prędkość direction=choose(90, 180, 270, 360) // losowy kierunek } Jeśli chcesz mieć wyrównane do siatki to musiałbyś pokombinować z tym GML x = x div 32 * 32 y = y div 32 * 32 Ale za bardzo to nawet nie wiem. No i to GML (step) image_single = direction * image_number/360; Odsyłam do artykułu Z klocków na kod. Mam nadzieję, że pomogłem, chociażby w małym stopniu. Edit: Fragment GML ii=30 oznacza, że co około sekundę (przy 30fps) zmienia kierunek. Jeśli dasz 60, to 2s, 90 to 3s, itd. Kolejny Edit: Zamiast wyrównywania siatki, możesz po prostu losować od 0 do 4, i przeskakiwać o 32 pixele, tzn. jeśli będzie 0 to przeskakuje o 32 pixele w lewo, jeśli 1 to 32 pixele w prawo. Myślę, że wiesz co mam na myśli. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Coś pozmieniałem i został ostatni problem a mianowicie boss nie zmienia obrazka zgodnie z kierunkiem. Chciałem pozmieniać GML image_single = direction * image_number/360; na GML image_single = direction * image_number/-360; Ponieważ dotyczy ten kod obrotu tego sprajta, ale powodowało to tylko że co jakiś czas boss obracał się woku własnej osi. A dodanie kodu: GML direction=point_direction(x,y,object258.x,object258.y); powoduje że boss idzie po lini prostej i zaraz się zacina. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Coś pozmieniałem i został ostatni problem a mianowicie boss nie zmienia obrazka zgodnie z kierunkiem. Chciałem pozmieniać GML image_single = direction * image_number/360; na GML image_single = direction * image_number/-360; Ponieważ dotyczy ten kod obrotu tego sprajta, ale powodowało to tylko że co jakiś czas boss obracał się woku własnej osi. A dodanie kodu: GML direction=point_direction(x,y,object258.x,object258.y); powoduje że boss idzie po lini prostej i zaraz się zacina. Nie jestem pewien na 100%, ale jak się ustawia obrót sprite w edytorze, to trzeba ustawić 361, lub 360 klatek. Tyle ustawiłeś? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 ustawiłem 4 ponieważ ma on się obracać tylko w 4 strony. W przykładzie było tak i tam nie było problemu. Nawet nie rozumiem po co aż 360 obrazków. Sprawdziłem to i nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 GML image_single = direction div 90; ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 ustawiłem 4 ponieważ ma on się obracać tylko w 4 strony. W przykładzie było tak i tam nie było problemu. Nawet nie rozumiem po co aż 360 obrazków. Sprawdziłem to i nie działa. To jak masz 4 obrazki, to dziel przez 4, a nie 360. Robi się przez 360, bo chodzi o cały obrót wokół własnej osi, a nie 4 stopnie. EDIT. W sumie jak masz tylko obracanie tylko w 4 strony, to możesz nawet tak zrobić. Mieć 4 różne sprite (nie jest to zbyt dobry sposób, ale i tak robisz na klockach, więc co tam) każdy na inny kierunek. W step tylko sprawdzaj kierunek i na jego podstawie zmieniaj sprite. Wyglądałoby to tak GML (step) if direction=0 sprite_index = spr_skeleton_right if direction=90 sprite_index = spr_skeleton_down if direction=180 sprite_index = spr_skeleton_left if direction=270 sprite_index = spr_skeleton_left Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 To też nie działa. Ale powiedz mi jak przesłać grę wtedy mógłbyś sam zobaczyć ten fragment. EDIT.Sprawdze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 6 Sierpnia 2014 Udostępnij Opublikowano 6 Sierpnia 2014 Wchodzisz do uploadera na gmclan proszę Następnie "Przejdź do swojego katalogu" i wybierasz twój plik gmk. W sensie, że tam go wysyłasz i dajesz mi link :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 6 Sierpnia 2014 Autor Udostępnij Opublikowano 6 Sierpnia 2014 Dzięki, ale teraz wywaliło mi GM i musze to nadrobic bo zapomniałem zapisac. Poczekaj chwile. EDIT. Dzięki, udało się :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 7 Sierpnia 2014 Autor Udostępnij Opublikowano 7 Sierpnia 2014 Jeszcze jedno pytanie. Jeżeli sprite postać jest ruchomy to jak należy zmienic ten kod: GML if direction=0 sprite_index =spr_skeleton_right; if direction=90 sprite_index = spr_skeleton_up; if direction=180 sprite_index = spr_skeleton_left; if direction=270 sprite_index = spr_skeleton_down; Animacja jest tylko wtedy gdy porusza się w dół i do góry Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 7 Sierpnia 2014 Udostępnij Opublikowano 7 Sierpnia 2014 Dzięki, ale teraz wywaliło mi GM i musze to nadrobic bo zapomniałem zapisac. Poczekaj chwile. EDIT. Dzięki, udało się :) EDIT.2 Jeszcze jedno pytanie. Jeżeli sprite postać jest ruchomy to jak należy zmienic ten kod: GMLif direction=0 sprite_index =spr_skeleton_right; if direction=90 sprite_index = spr_skeleton_up; if direction=180 sprite_index = spr_skeleton_left; if direction=270 sprite_index = spr_skeleton_down; Animacja jest tylko wtedy gdy porusza się w dół i do góry Hmmm, wiem, że też miałeś kiedyś taki problem, ale nie mogę znaleźć, gry w której to rozwiązałem, ale zdaje mi się, że tak. GML if (direction=0) and !(sprite_index=spr_skeleton_right) sprite_index=spr_skeleton_right Ale nie jestem pewien, czy w dobry sposób użyłem negacji ( '!' ). Powinno to działać tak. Jeżeli kierunek jest równy 0 oraz indeks jest inny od spr_skeleton_right, to zmienia indeks. Jeśli chcesz spowolnić sprite, to dodaj image_speed = (od 0 do 1, np. 0.3) EDIT; Tylko ten image_speed, jak coś dodaj w CREATE, bo bez sensu cały czas ustawiać na nowo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 7 Sierpnia 2014 Autor Udostępnij Opublikowano 7 Sierpnia 2014 To i tak nie dało , dół i góra działają poprawnie a przecież wszystko wygląda tak samo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 7 Sierpnia 2014 Udostępnij Opublikowano 7 Sierpnia 2014 To znaczy? Bo teraz nie ogarnąłem. Nie ma animacji? Bo tam musisz zmienić ten direction i sprite, ale tak poza tym chyba powinno działać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 7 Sierpnia 2014 Autor Udostępnij Opublikowano 7 Sierpnia 2014 Nie ma po prostu animacji, zrobiłem dokładnie jak napisałeś i jest to samo. Boss skręca zmienia się ale animacja nie chce się poruszać EDIT. Tak to wygląda: GML if (direction=0) and !(sprite_index=spr_skeleton_right) sprite_index =spr_skeleton_right image_speed=0.3; if (direction=90) and ! (sprite_index=spr_skeleton_up) sprite_index = spr_skeleton_up image_speed=0.3; if (direction=180)and !(sprite_index=spr_skeleton_left) sprite_index = spr_skeleton_left image_speed=0.3; if (direction=270) and !(sprite_index=spr_skeleton_down) sprite_index = spr_skeleton_down image_speed=0.3; Napisz co mam źle. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 7 Sierpnia 2014 Udostępnij Opublikowano 7 Sierpnia 2014 Nie musisz powtarzać tego image_speed=0.3. Daj w CREATE. Ale to nie rozwiązuje problemu, a ja nie wiem gdzie on jest. Może ktoś bardziej doświadczony pomoże, ja nie wiem :< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zombie-Games Opublikowano 7 Sierpnia 2014 Udostępnij Opublikowano 7 Sierpnia 2014 Nie ma po prostu animacji, zrobiłem dokładnie jak napisałeś i jest to samo. Boss skręca zmienia się ale animacja nie chce się poruszać EDIT. Tak to wygląda: GML if (direction=0) and !(sprite_index=spr_skeleton_right) sprite_index =spr_skeleton_right image_speed=0.3; if (direction=90) and ! (sprite_index=spr_skeleton_up) sprite_index = spr_skeleton_up image_speed=0.3; if (direction=180)and !(sprite_index=spr_skeleton_left) sprite_index = spr_skeleton_left image_speed=0.3; if (direction=270) and !(sprite_index=spr_skeleton_down) sprite_index = spr_skeleton_down image_speed=0.3; Napisz co mam źle. Spróbuj tak : GML if (direction=0) && (!(sprite_index=spr_skeleton_right)) sprite_index =spr_skeleton_right image_speed=0.3; if (direction=90) && (!(sprite_index=spr_skeleton_up)) sprite_index = spr_skeleton_up image_speed=0.3; if (direction=180) && (!(sprite_index=spr_skeleton_left)) sprite_index = spr_skeleton_left image_speed=0.3; if (direction=270) && (!(sprite_index=spr_skeleton_down)) sprite_index = spr_skeleton_down image_speed=0.3; EDIT : Szybciej działa if (..) && (!(..)) niż if (..) and !(..) (nie wiem szczerze jak w GML ale w JS lepiej działało ;)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 7 Sierpnia 2014 Autor Udostępnij Opublikowano 7 Sierpnia 2014 To też nie tylko do góry i do dołu działa. :( EDIT. Może to coś z End Step: PLIK Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 7 Sierpnia 2014 Udostępnij Opublikowano 7 Sierpnia 2014 Animacja Ci działa tylko do góry i do dołu? W ogóle dobrze masz te animacje zrobione (każdemu się zdarza). Bo to dziwne by było, kod jest taki sam ._. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dexter19 Opublikowano 7 Sierpnia 2014 Autor Udostępnij Opublikowano 7 Sierpnia 2014 Sprawdzałem. Wszystkie te animacje powstały na bazie jednego więc są identyczne.I patrz do góry na ostatni post. 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ę