Shaman Opublikowano 8 Października 2007 Udostępnij Opublikowano 8 Października 2007 No więc, chodzi o funkcję instance_nearest. Mam problem, nad którym głowię się już drugi dzień i nie mogę go rozwiązać. Sprawę ciężko opisać samymi słowami, więc zamieszczam przykład: KLIK. Są czerwone i zielone kulki które są w ciągłym ruchu. Wszystkie kulki to jest ten sam obiekt, a kolor losuje się w create event. Całe zagadnienie polega na tym, żeby po kliknięciu na jedną z kulek, pojawiała się linia łącząca klikniętą kulkę z NAJBLIŻSZĄ kulką TEGO SAMEGO KOLORU. Wszystko byłoby proste, gdyby nie to, że kulki to jeden obiekt. 1. Początkowo nie wiedziałem nawet jak kazać kulce wyszukać inną, najbliższą kulkę (pomijając kolory). Kiedy używałem funkcji instance_nearest, to kulka wyszukiwała samą siebie. Działo się tak, bo od punktu będącego originem kulki najbliższą kulką była ona sama. Niedawno wymyśliłem żeby deaktywować obiekt szukający na moment przed wyszukiwaniem i aktywować go znowu po wyszukaniu, żeby nie wyszukiwał sam siebie. Okazało się, że sposób zadziałał w przykładzie, jednak jak użyłem go w grze, to pojawiły się różne bugi, które najwyraźniej wywołuje ta chwilowa deaktywacja. Jak ktoś ma inny pomysł, to chętnie wysłucham ;) 2. Trudniejsza sprawa, czyli wyszukiwanie najbliższego instance'a o podanych parametrach, w przykładzie chodzi o kolor kulki, a w grze tych parametrów może być więcej. Wszelkie pomysły mile widziane. Czekam na odpowiedzi, miejsce w creditsach zapewnione :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 8 Października 2007 Udostępnij Opublikowano 8 Października 2007 Wrrr... tyle razy dawałem na to skrypt xD // funkcje nazywasz np nearest_color_obj var __dist,_obj; __dist=1000; with(argument0) { if (id<>argument2.id) if (color==argument1) if (distance_to_object(argument2)<__dist) { __dist=distance_to_object(argument2); _obj=self.id; } } return _obj; Masz sobie funkcje nearest_color_obj(obj,color,to_obj); pierwszy argument to rodzaj obiektu jakiego szukasz, 2 argument to jaki ma mieć kolor, a 3 argument, to do którego ten najbliższy dystans ma szukać, najlepiej jak podasz id :P czyli np w kulce dajesz kod nearest_color_obj(objKulka,c_green,self.id); .. i więcej nie pytać! RAWR! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shaman Opublikowano 8 Października 2007 Autor Udostępnij Opublikowano 8 Października 2007 Kurde, nie do końca kumam ten kod, jak go wstawiłem do przykładu to pokazało error przy return _obj, że unknown variable _obj. Byłbyś tak miły i wstawiłbyś swój skrypt do przykładu i zamieścił, bo ja najwidoczniej robię robię to źle. Albo chociaż zerknął na przykład i wyjaśnił co gdzie wstawić i jak? Byłbym wdzięczny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 8 Października 2007 Udostępnij Opublikowano 8 Października 2007 Wejdź w global game setting -> errors -> ...unknown variable as 0 xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shaman Opublikowano 8 Października 2007 Autor Udostępnij Opublikowano 8 Października 2007 Dobra, problem rozwiązany. pablo1517, wielkie dzięki, skumałem o co chodziło w twoim skrypcie i napisałem własny, pasujący do przykładu, teraz wszystko działa. :thumbsup: Zamykam temat Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi