Dester Opublikowano 12 Marca 2017 Udostępnij Opublikowano 12 Marca 2017 Mam sobie obiekt car. Ten obiekt w każdym step ustawia zmienną near na najbliższą instancję obiektu car. GML near = instance_nearest(x, y, car) Problem w tym że za każdym razem będzie ustawiał ją na siebie. Internet podpowiada: GML x += 7777777 near = instance_nearest(x-7777777, y,car) x -= 7777777 Ale przecież każda instancja obiektu car wykona ten kod w tym samym momencie! Z tego powodu nadal nie otrzymam oczekiwanego wyniku -_- Ktoś wie jak to rozwiązać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 12 Marca 2017 Udostępnij Opublikowano 12 Marca 2017 coś z instance_find() może. Albo w necie jest taki skrypt instance_nearest_nth(); http://www.gmlscripts.com/script/instance_nth_nearest Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 12 Marca 2017 Udostępnij Opublikowano 12 Marca 2017 Szybkim rozwiązaniem będzie użycie: http://www.gmlscripts.com/script/instance_nth_nearest ale... to co podałeś powinno działać. Jeżeli nie działa to masz bałagan w kodzie. Nie przeniesie to wszystkich instancji tylko ten jeden wykonujący kod. I nic nigdy nie ma prawa wykonać się w tym samym momencie! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 7 Maja 2017 Udostępnij Opublikowano 7 Maja 2017 Internet podpowiada Ci jakąś głupotę. Nie mam GameMakera w tej chwili więc pojadę z pamięci, możliwe, że nie wszystkie funkcje będą dobrze sie nazywały, ale z dokumentacją dojdziesz co miałem na mysli. Dla jasności ustalmy, że twój obiekt "car" nazywa sie objCar, żeby łatwiej sie czytało. GML var distToNearest= 100000; // jakas ogromna wartosc, troche hack, ale na twoje potrzeby wystarczy var nearestInst = noone; // nie pamietam jak jest jakis odpowiednik nulla w GM with(objCar) { if (self.id == other.id) // pomin samego siebie continue; var dist = point_distance(x, y, other.x, other.y); if (dist < distToNearest) { nearestInst = self.id; distToNearest = dist; } } Na koncu tego skryptu pod nearestInst masz id najblizszego obiektu objCar i pod distToNearest masz dystans do tego obiektu. Troche bym się zastanowił czy faktycznie musisz wykonywać ten skrypt co step. Jesli bedziesz miał sporo tych aut to może być overkill bo każde auto będzie pętlowało po wszystkich innych (łącznie ze soba) Z czystej ciekawości, co próbujesz osiągnąć tym wyszukiwaniem najbliższego obiektu? I nic nigdy nie ma prawa wykonać się w tym samym momencie! GM raczej wątków się nie doczekał, więc tak, kod wszystkich instancji wykonuje się w jakiejś kolejności, nigdy jednocześnie. W ogóle lol, Threef, sprawdziłem Cię teraz. Byłes z nami na GameJamie w budapeszcie xD. Zajrzałeś też na Pyrkonie do nas, Insection wystawiałem z Artifexem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 8 Maja 2017 Udostępnij Opublikowano 8 Maja 2017 W ogóle lol, Threef, sprawdziłem Cię teraz. Byłes z nami na GameJamie w budapeszcie xD. Zajrzałeś też na Pyrkonie do nas, Insection wystawiałem z Artifexem. Wiem, też się wystawiałem i o waszym amLABie dowiedziałem się w niedzielę. Pograłem w Another one fight the dust ale koło Ciebie była za duża kolejka ;) dziwne że się nie widzieliśmy w sobotę na imprezie. 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ę