/l/l-ichał Opublikowano 23 Września 2009 Udostępnij Opublikowano 23 Września 2009 Witam, zakładałem już kiedyś temat odnośnie tego problemu ale teraz jest to zupełnie inny kod. Chodzi o to, że obiekt A ma swoją bazę danych, a w najbliższym terenie jest 10 obiektów B. Próbowałem naprawdę wielu rozwiązań ale jak widać nie wystarczająco wiele. Mam pewien zarys jednak nie umiem go składnie przekształcił na kod, mam nadzieję, że ktoś mi pomorze. Więc, "A" ma za zadanie policzyć i nazwać jako jedna zmienna obiekty "B" (np. dobre), które spełniają dany warunek. Następnie wybrać najbliższy z tych "dobrych". (to akurat umiem) Mniej więcej wygląda to tak (w mojej głowie): A step dobre = obiekty B, które !collision_line...ściana.. wybrany = nearest...dobre Od razu dodam, że poprzedni kod, który dostałem został wykorzystany gdzie indziej, bo mając 10 A i 10B, wykonywał 400 skomplikowanych pętli na raz co trochę przeciążało. Po co mi to? Sygnaturka, projekt ciągnę już ponad pół roku więc nie jestem jednym z tych co zaczynają i nie kończą. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 23 Września 2009 Udostępnij Opublikowano 23 Września 2009 GML nearest = 0; //Tu będziemy przechowywać id najbliższego B dis=999999; //Dystans do najbliższego with(B) //Sprawdzamy po kolei wszystkie B { a=point_distance(other.x,other.y,x,y); //sprawdzamy odległość danego B do A if(a<other.dis && dobry=true) //jeśli odległość jest mniejsza i obiekt B jest dobry { other.dis=a; //aktualizujemy odległość other.nearest=id; //i id najbliższego } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
/l/l-ichał Opublikowano 23 Września 2009 Autor Udostępnij Opublikowano 23 Września 2009 Jest naprawdę ciekawe, jednak mi wystarczy komenda nearest...dobry, przede wszystkim chodzi mi o to jak ustalić, który jest dobry, tak czy inaczej dzięki. Edit: chociaż... myślisz że jak zmienię dobry=true na !collision line to będzie sprawdzać po kolei aż znajdzie najbliższy, spełniający warunek? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 23 Września 2009 Udostępnij Opublikowano 23 Września 2009 chociaż... myślisz że jak zmienię dobry=true na !collision line to będzie sprawdzać po kolei aż znajdzie najbliższy, spełniający warunek? Ja piernicze, przecież właśnie do tego ci to napisałem! xD Czyli: TAK! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
/l/l-ichał Opublikowano 23 Września 2009 Autor Udostępnij Opublikowano 23 Września 2009 ahh, sorry, dopiero teraz dokładnie przeanalizowałem skrypt Po pierwszych testach wszystko wygląda dobrze ale posprawdzam jeszcze chwilę i dam znać. Edit: To jest po prostu zbyt piękne! Sprawdzałem w każdy sposób, dałem ten sam skrypt do obiektu B względem A, postawiłem po 20 A i B, tor przeszkód, a gra nawet nie zwolniła. Jestem twoim dłużnikiem. :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi