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?
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.