kt1117 Opublikowano 3 Lutego 2011 Udostępnij Opublikowano 3 Lutego 2011 Jak zrobić w miarę porządny system podążania za głównym bohaterem? Mam taki kod: GML uparty=0 global.zajete[x,y]=id if distance_to_object(object2)>50 { if point_direction(x,y,object2.x,object2.y)>=337.5 and point_direction(x,y,object2.x,object2.y)< 22.5 { if global.ide[x+5,y]=0 { if global.zajete[x+5,y]=0 { x+=5 global.ide[x+5,y]=id } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x+=5 global.ide[x+5,y]=id } else { x+=5 y-=5 global.ide[x+5,y-5]=id } } } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x+=5 global.ide[x+5,y]=id } else { x+=5 y-=5 global.ide[x+5,y-5]=id } } } if point_direction(x,y,object2.x,object2.y)>=22.5 and point_direction(x,y,object2.x,object2.y)< 67.5 { if global.ide[x+5,y-5]=0 { if global.zajete[x+5,y-5]=0 { x+=5 y-=5 global.ide[x+5,y-5]=id } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x+=5 y-=5 global.ide[x+5,y-5]=id } else { y-=5 global.ide[x+5,y]=id } } } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x+=5 y-=5 global.ide[x+5,y-5]=id } else { y-=5 global.ide[x+5,y]=id } } } if point_direction(x,y,object2.x,object2.y)>=67.5 and point_direction(x,y,object2.x,object2.y)< 112.5 { if global.ide[x,y-5]=0 { if global.zajete[x,y-5]=0 { y-=5 global.ide[x,y-5]=id } else { if global.zajete[x,y-5].uparty=0 { uparty=1 y-=5 global.ide[x,y-5]=id } else { x-=5 y-=5 global.ide[x-5,y-5]=id } } } else { if global.zajete[x,y-5].uparty=0 { uparty=1 y-=5 global.ide[x,y-5]=id } else { x-=5 y-=5 global.ide[x-5,y-5]=id } } } if point_direction(x,y,object2.x,object2.y)>=112.5 and point_direction(x,y,object2.x,object2.y)<157.5 { if global.ide[x-5,y-5]=0 { if global.zajete[x-5,y-5]=0 { x-=5 y-=5 global.ide[x-5,y-5]=id } else { if global.zajete[x-5,y-5].uparty=0 { uparty=1 x-=5 y-=5 global.ide[x-5,y-5]=id } else { x-=5 global.ide[x-5,y]=id } } } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x-=5 y-=5 global.ide[x-5,y-5]=id } else { x-=5 global.ide[x-5,y]=id } } } if point_direction(x,y,object2.x,object2.y)>=157.5 and point_direction(x,y,object2.x,object2.y)<202.5 { if global.ide[x-5,y]=0 { if global.zajete[x-5,y]=0 { x-=5 global.ide[x-5,y]=id } else { if global.zajete[x-5,y].uparty=0 { uparty=1 x-=5 global.ide[x-5,y]=id } else { x-=5 y+=5 global.ide[x-5,y+5]=id } } } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x-=5 global.ide[x-5,y]=id } else { x-=5 y+=5 global.ide[x-5,y+5]=id } } } if point_direction(x,y,object2.x,object2.y)>=202.5 and point_direction(x,y,object2.x,object2.y)<247.5 { if global.ide[x-5,y+5]=0 { if global.zajete[x-5,y+5]=0 { x-=5 y+=5 global.ide[x-5,y+5]=id } else { if global.zajete[x-5,y+5].uparty=0 { uparty=1 x-=5 y+=5 global.ide[x-5,y+5]=id } else { y+=5 global.ide[x,y+5]=id } } } else { if global.zajete[x+5,y].uparty=0 { uparty=1 x-=5 y+=5 global.ide[x-5,y+5]=id } else { y+=5 global.ide[x,y+5]=id } } } if point_direction(x,y,object2.x,object2.y)>=247.5 and point_direction(x,y,object2.x,object2.y)<292.5 { if global.ide[x,y+5]=0 { if global.zajete[x,y+5]=0 { y+=5 global.ide[x,y+5]=id } else { if global.zajete[x+5,y].uparty=0 { uparty=1 y+=5 global.ide[x,y+5]=id } else { x+=5 y+=5 global.ide[x+5,y+5]=id } } } else { if global.zajete[x+5,y].uparty=0 { uparty=1 y+=5 global.ide[x,y+5]=id } else { x+=5 y+=5 global.ide[x+5,y+5]=id } } } if point_direction(x,y,object2.x,object2.y)>=292.5 and point_direction(x,y,object2.x,object2.y)<337.5 { if global.ide[x+5,y+5]=0 { if global.zajete[x+5,y+5]=0 { x+=5 y+=5 global.ide[x+5,y+5]=id } else { if global.zajete[x+5,y+5].uparty=0 { uparty=1 x+=5 y+=5 global.ide[x+5,y+5]=id } else { x+=5 global.ide[x+5,y]=id } } } else { if global.zajete[x+5,y+5].uparty=0 { uparty=1 x+=5 y+=5 global.ide[x+5,y+5]=id } else { x+=5 global.ide[x+5,y]=id } } } } else speed=0 I obiekty, które mają podążać za głównym obiektem się sklejają. Nie powiedziałem jeszcze co chcę osiągnąć, więc: -obiekty się nie sklejają -nie zachowują się jak by miały ADHD -podążają za bohaterem w miarę równych odstępach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nikas Opublikowano 3 Lutego 2011 Udostępnij Opublikowano 3 Lutego 2011 tl;dr Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 3 Lutego 2011 Udostępnij Opublikowano 3 Lutego 2011 mp_potential_speed(hero.x, hero.y, speed, false); ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 3 Lutego 2011 Autor Udostępnij Opublikowano 3 Lutego 2011 Zachowują się, jakby miały ADHD. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 4 Lutego 2011 Autor Udostępnij Opublikowano 4 Lutego 2011 Sorry za double'a, ale dalej nie wiem jak rozwiązać problem, dałem kod: GML if distance_to_object(object2)>20 mp_potential_step(object2.x,object2.y,5,object4) Ale wtedy omija wszystkie obiekty, a ma omijać tylko niektóre. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 4 Lutego 2011 Udostępnij Opublikowano 4 Lutego 2011 Któreś z argumentów funkcji mp_potencional_step jest to czy mają omijać wszystkie czy tylko te z zaznaczonym solidem. Wystarczy przeanalizować tą funkcję dokładnie. 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ę