Skocz do zawartości

Zablokowane Usuwanie jednego obiektu


Sirluki

Rekomendowane odpowiedzi

Witam, mam problem :)

 

Mam problem, nie wiem czy poważny, ponieważ w ogóle go nie rozumiem. Mianowicie:

Mam w grze obj_enemy i wstawiam go kilkakrotnie w roomie. Problem polega na tym, że gdy chce zniszczyć obj_enemy niszczy wszystkie w roomie.

 

Create:

GML
enemy_id = id

Step obj_enemy:

GML
if (hp <= 0)

{

with (enemy_id) instance_destroy();

}

Od razu podkreślę, że samo:

GML
if (hp <= 0) instance_destroy();

nie pomaga.

 

Nie wiem na czym polega problem, ponieważ zapisuję do zmiennej id obiektu i chcę niszczyć obiekt o danym id. Kiedy w stepie w miejsce enemy_id wpiszę konkretną liczbę, to niszczy tylko jeden obiekt, ale nie chcę do każdego obiekt wpisywać danej liczby, bo tych obiektów będzie za dużo.

Próbowałem też:

GML
with (self) instance_destroy();

i wiele innych...

 

Możecie mi powiedzieć co źle robię? :)

 

Sprawdziłem też, czy poprawnie wyświetla id obiektów i jest poprawnie:

wolfpu3.png

Odnośnik do komentarza
Udostępnij na innych stronach

To zależy od tego jak chcesz je niszczyć czy najbliższego, najdalszego może grupę?

EDIT: właciwie to poco wstawiłeś coś takiego

GML

if (hp <= 0)

{

with (enemy_id) instance_destroy();

}

w objecie enemy

GML

if (hp <= 0)

instance_destroy();

zrób tak poprostu
Odnośnik do komentarza
Udostępnij na innych stronach

To zależy od tego jak chcesz je niszczyć czy najbliższego, najdalszego może grupę?

Nie rozumiem :huh: Chcę niszczyć po prostu tego, którego hp <= 0 :)

 

EDIT: właciwie to poco wstawiłeś coś takiego
GML

if (hp <= 0)

{

with (enemy_id) instance_destroy();

}

w objecie enemy

GML

if (hp <= 0)

instance_destroy();

zrób tak poprostu

 

Od razu podkreślę, że samo:

GML

 

if (hp <= 0) instance_destroy();

 

nie pomaga.

 

:)

Odnośnik do komentarza
Udostępnij na innych stronach

może

 

GML
with (enemy_id){

if (hp <= 0)

instance_destroy();

}

 

Też nie :mellow:

 

Może ma coś do tego kod:

GML
instance_activate_all();

instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true);

 

Sam już nie wiem. Cały czas nisczy wszystkie obj_enemy :blink:

Odnośnik do komentarza
Udostępnij na innych stronach

o lol to dlatego bo ty ich wcale nie niszczysz tylko tymczasowo je usuwasz. usuwasz wszystko co widzisz na ekranie a to co jest poza ekranem jest aktywne.

 

? :huh:

 

Kod:

GML
instance_activate_all();

instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true);

 

Mam w obj_control.

On deaktywuje wszystko co mam poza viewem. A teraz mam kilka obj_enemy w viewie, i chce żeby ten, którego hp <= 0 usuwal sie. Ale gdy hp <= 0 usuwa wszystkie obj_enemy w viewie. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Chociaż... klocki to nie zły pomysł ale ciężka kombinacja... sprawdź moje :D

 

Nie trzeba :)

 

Zrobiłem mały test i rysowałem hp obj_enemy aby sprawdzić jak zmienia się ich życie. Miałem niewielki błąd w kodzie od walki i dlatego wyglądało tak, jakby były usuwane wszystkie obiekty a nie jeden.

 

Dzięki wszystkim za pomoc :)

Zamykam.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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