Skocz do zawartości

Błąd przy instance_destroy w ifie


Bedziom

Rekomendowane odpowiedzi

Siema.

Mam skrzynkę, która powinna zniknąć po rozstrzelaniu jej na kawałki.

W Stepie figuruje następujący kod:

GML
if hp=0

{a=instance_create(x+32,y+32,oSkrzynDes);

a.image_angle=image_angle+choose(150,-16,-163,561,0.4444,61,-63);

indes()}

I wywala mi milutki, niezrozumiały dla mnie błąd

wtf.png

Z góry mówię, że skrypt indes() to skrócone (dla wygody) instance_destroy()

Dodam też, że pisałem to jakieś pół roku temu i wszystko działało, a dziś zrobiłem update - i tyle zmieniłem od tamtego czasu. I nagle, znikąd, błąd.

 

O co chodzi i co robię źle?

Odnośnik do komentarza
Udostępnij na innych stronach

OK, dobra.

Już wiem co jest źle. ;)

GML
if hp=0

{

with(instance_create(x+32,y+32,oSkrzynDes))

{

image_angle=other.image_angle+choose(150,-16,-163,561,0.4444,61,-63);

}

indes()}

 

W GM:S zostały zmienione jakiś czas temu eventy, a dokładnie to w jaki sposób działają.

Błąd był przez to że nowy instance powstaje dopiero po wykonaniu reszty kodu. Więc próbuje zmienić image_angle po usunięciu obiektu który wykonał ten kod. Użycie with() pozwala na wymuszenie aby instance powstał (prawie) od razu i wykonał ten kod. Dopiero potem wykonuje się reszta.

 

Inne obejścia tego to zrobienie osobno twojego kasowania w "End Step".

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