Skocz do zawartości

3 nalbliższe osoby podążają


Ch3mical

Rekomendowane odpowiedzi

GML
_id1=instance_nearest(x,y,object)

instance_deactivate_object(_id1)

_id2=instance_nearest(x,y,object)

instance_deactivate_object(_id2)

_id3=instance_nearest(x,y,object)

instance_activate_object(_id1)

instance_activate_object(_id2)

 

A potem normalnie move_towards_point :)

Odnośnik do komentarza
Udostępnij na innych stronach

Sposób PsichiXa działa, ale jak dla mnie wygodniej jest skorzystać z tego:

GML
// INSTANCE_NEAREST_EXT

// ==============

// Same like instance_nearest only you can get the #th nearest instance.

// ==============

// Arguments:

// 0 (int) : x.

// 1 (int) : y.

// 2 (id) : objecttype.

// 3 (int) : #th instance to find.

// ==============

// Returns:

// instance_id or noone

loc_x = argument0;

loc_y = argument1;

obj_type = argument2;

obj_num = argument3;

 

wds = ds_list_create();

wds2 = ds_list_create();

 

count = instance_number(obj_type);

 

for (iii=0;iii<count;iii+=1)

{

cobj = instance_find(obj_type,iii);

if (instance_exists(cobj))

{

new_dist = point_distance(loc_x,loc_y,cobj.x,cobj.y);

 

if (ds_list_empty(wds))

{

ds_list_add(wds,cobj);

ds_list_add(wds2,new_dist);

}

else

{

dss = ds_list_size(wds2);

added=false;

for (iiii=0;iiii<dss;iiii+=1)

{

if ( new_dist < ds_list_find_value(wds2,iiii) )

{

ds_list_insert(wds2,iiii,new_dist);

ds_list_insert(wds,iiii,cobj);

added=true;

break;

}

}

if (!added)

{

ds_list_add(wds2,new_dist);

ds_list_add(wds,cobj);

}

}

}

}

 

if (ds_list_size(wds) >= obj_num)

result = ds_list_find_value(wds,obj_num);

else

result = noone;

 

ds_list_destroy(wds);

ds_list_destroy(wds2);

 

return result;

Odnośnik do komentarza
Udostępnij na innych stronach

no w sumie mozna lepiej zrobic.. ja kiedys probowalem ale potem musialem odejsc od kompa a na nastepny dzien mi sie juz odechcialo ;] .. ja cos myslalem ze mozna np drugi obiekt najblizszy to pierwszy zniszczyc i szybko spowrotem stworzyc.. albo oddalic i spowrotem przyblizyc ;P

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...