mipo57 Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 jest kilka obj1 każdy z nich tworzy obj2 na swojej pozycji i jak zrobić żeby akcja miała miejsce przy zderzeniu obj1 z najbliższym obj2 nie licząc swojego obj2 i jeszcze jeden problem: jak zrobić żeby obj1 znalazł obj1 najbliższego siebie nie licząc siebie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 1. Gdy obj1 tworzy obj2 to niech zapisuje id tego swojego obj2 w jakiejś zmiennej. W ten sposób: GML moj_obj2=instance_create(x,y,obj2); Teraz w kolizji obj1 z obj2 dajesz po prostu warunek: GML if(other!=moj_obj2) Żeby kod się nie wykonał przy kolizji z tym własnym. Tylko nie zapomnij najpierw w Create stworzyć zmienną moj_obj2 2. Możesz w pętli przejrzeć wszystkie obiekty obj1 i znaleźć ten najbliżej, ale pominąć samego siebie: GML nearset=0; //do tej zmiennej zapiszemy id najbliższego obj1 dist=100000; //odległość od najbliższego obj1 with(obj1) //przeglądamy wszystkie obj1 { dis=point_distance(other.x,other.y,x,y); //obliczamy odległość if(id!=other && dis<other.dist) //jeśli to nie jest on sam i jest bliżej niż aktualny najbliższy { other.dist=dis; //aktualizujemy odległość other.nearest=id; //zapisujemy id najbliższego } } Po tym kodzie w zmiennej nearest jest id najbliższego obj1 Z tego co pamiętam to w with można używać other. A jeśli nie to stwórz sobie zmienne globalne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 28 Stycznia 2010 Autor Udostępnij Opublikowano 28 Stycznia 2010 dzięki działa tylko w 1 trzeba zmienić GML if(other!=moj_obj2) na GML if(other.id!=moj_obj2) edit: w 2 wszystkie obracają się w kierunku pierwszego stworzonego--> klik Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 W drugim popraw też tutaj: GML if(id!=other.id && dis<other.dist) other.id :P Plik nic mi nie da, bo nie używam GM8, a konwertera nie ma :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 28 Stycznia 2010 Autor Udostępnij Opublikowano 28 Stycznia 2010 też nic nie daje a tu gm7 masz klik Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 28 Stycznia 2010 Udostępnij Opublikowano 28 Stycznia 2010 Napisałeś "nearSET" zamiast "nearEST" :D W Create i przy obracaniu sprite'ów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 28 Stycznia 2010 Autor Udostępnij Opublikowano 28 Stycznia 2010 No teraz działa taki mały głupi błąd :blush: 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ę