Skocz do zawartości

Instance destroy


Vandarki

Rekomendowane odpowiedzi

Witam, mam problem z instance_destroy(), w roomie mam kilka takich samych obiektow, ale nie chce zeby znikały wszystkie naraz tylko jeden konkretny z nich,

 

GML
if keyboard_check_pressed(vk_space)

if distance_to_object(object1)<37

{

instance_destroy();

room_goto(room1)

}

 

to kod z obiektu który ma zniknac, nie wiem czy do końca dobrze wytłumaczyłem o co mi chodzi ale mam nadzieje że zrozumiecie :D

Odnośnik do komentarza
Udostępnij na innych stronach

instance_destroy() usuwa instance który wykonuje ten kod. Aby to się udało musisz wykonać ten kod w obiekcie który chcesz usunąć. Istnieje łatwy sposób na to przy użyciu with(), ale pierw musisz wiedzieć dokładnie które instance chcesz usunąć. distance_to_object() pomimo że ma jeszcze kilka wad to w tym wypadku nie wystarczy bo zwraca dystans a nie id. kriso99 podał dobre rozwiazanie. funkcja instance_nearest() zwraca id najbliższej względem dwóch pierwszych argumentów (najlepiej twoje x i y) instance.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja bym to zrobił tak.

GML
var naj = instance_nearest(x, y, object1);

if(distance_to_object(naj) < 37)

{

with(naj)

{instance_destroy();}

room_goto(room1);

}

Nie wiem czy to dokładnie chciałeś osiągnąć (bo z twojego kodu wynika, że niszczysz obiekt w którym kod jest), ale jak coś pozmieniaj parę argumentów i już jest.
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ę...