Moho Opublikowano 12 Kwietnia 2006 Udostępnij Opublikowano 12 Kwietnia 2006 Witam ^^ Potrzebuję wiedzieć jak napisać ponirzszą operację w kodzie : move in the direction of a point Pozdrawiam Moho ! EDIT : Już nie ważne ! :3 ale mam inny problem Chcę żeby jak mnie zobaczy Wróg to ma ścigać Playera, mój kod to coś takiego : (object1 to player) Wróg : STEPS: if (object1.x < x + 300) && (object1.x > x - 300) widzi = 1 if widzi = 1 { move_towards_point(object1.x,y,3) } else patrol = 1 if patrol = 1 { hspeed = -1 } CREATE: widzi = 0 patrol = 0 ALARM [0]: patrol = 1 Według mojego mniemania obiekt powinien chyba iśc w strone playera ale nie idzie... Jak dam zamiast - move_towards_point(object1.x,y,3) np. x=object1.x to jakby działa tyle że wróg odrazu żuca się na playera, a ja chcę osiągnąć płynne podejście. Prosiłbym o Pomoc ^^" Pozdrawiam Moho ! Tagi CODE! //Tymon Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 12 Kwietnia 2006 Udostępnij Opublikowano 12 Kwietnia 2006 Widzę pewną nielogiczność: if (object1.x < x + 300) && (object1.x > x - 300) Czyli: jeżeli object1.x jest większe niż x+300 oraz object1.x jest mniejsze niż x-300. Tych dwóch warunków nie da się wykonać jednocześnie. Wstaw OR (lub) zamiast AND. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 12 Kwietnia 2006 Udostępnij Opublikowano 12 Kwietnia 2006 Musisz po wykryciu do widzi=1 dopisac patrol=0 i dziala Jakim@ to jest jak najbardziej logiczne, pomylily ci sie znaki ">" z "<" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moho Opublikowano 12 Kwietnia 2006 Autor Udostępnij Opublikowano 12 Kwietnia 2006 :angry: :angry: hehe a dlaczego mi nie działa alarm ?? wróg powinien po czasie stanąc w miejscu i mieć speed = 0... nowy kod : if (object1.x < x + 100) and (object1.x > x - 100) and (object1.y < y + 100) and (object1.y > y - 100) widzi = 1 if widzi = 1 { patrol = 0 move_towards_point(object1.x,object1.y,3) speed = 2 alarm[0] = 50 } else patrol = 1 if patrol = 1 { speed = 0 } W ALARM jest : patrol = 1 mam warunek w steps ze jezeli patrol wyniesie 1 to ma być speeed = 0, a nie dziala ^^" Pomocy... Ja już nie będę Cię poprawiać, warn. //Tymon Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 12 Kwietnia 2006 Udostępnij Opublikowano 12 Kwietnia 2006 To: if (object1.x < x + 100) and (object1.x > x - 100) and (object1.y < y + 100) and (object1.y > y - 100) mozesz skrocic uzywajac funkcje point_distance if point_distance(x,y,object1.x,object1.y) < 100 A alarm sie nie uruchamia poniewaz ten kod jest w step, i jezeli widzi=1 to co klatke alarm[0] na nowo ustawia sie na 50. Musizs przed alarm[0]=50 napisac warunek, czy alarm nie jest odliczany if alarm[0]=-1 then alarm[0]=50 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moho Opublikowano 13 Kwietnia 2006 Autor Udostępnij Opublikowano 13 Kwietnia 2006 :lol: Działa ! Kod mam taki: if point_distance(x,y,object1.x,object1.y) < 100 { widzi = 1 if widzi = 1 move_towards_point(object1.x,object1.y,1) } else if point_distance(x,y,object1.x,object1.y) > 100 { speed = 0 } i osiągnąłem w sumie to co chciałem :3 Jeżeli się oddalę wrogowi to przestaje mnie ścigać !! :3 Wielkie dzięki wszystkim za pomoc :thumbsup: Pozdrawiam Moho !! 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ę