gefundenes Objekt löschen = error???

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • gefundenes Objekt löschen = error???

    Hi Leute!
    Ich habe einen kleinen Skript geschrieben der mir verschiedene Objekte raussucht und deren werte in ein Binary file Speichert.
    Nun, die Objekte werden am ende der Abfrage gelöscht um komplikationen zu vermeiden.
    Da gibt es jedoch ein Problem: Nachdem ich die Werte speicher und das Objekt lösche, wird nach einem neuen gesucht.
    Dabei wird abgefragt ob das !NEUE! Objekt eiine Bedingung erfüllt. Wenn ja, dann sollen die Werte wieder gespeichert werden und das Objekt soll wieder gelöscht werden.

    Komischerweise sagt er mir immer dass er die X-Koordinate des Objekts nicht kennt.
    Hier mal der Skript:

    GML-Quellcode

    1. //nun gehe die Items nochmals durch. diesmal speicher sie im Chunk
    2. var item_count;
    3. item_count = instance_number(obj_dropped_item);
    4. for(u=0;u<item_count;u+=+1){//gehe alle Items durch
    5. var item_r;
    6. item_r = instance_find(obj_dropped_item,u); //Hol die dir ID des einen Items
    7. if (scr_get_chunk_ID_object(item_r.x) == gID){//<<< Genau HIER erkennt er die "item_r.x" Variable NICHT!
    8. with self var item_x;
    9. item_x = item_r.x - scr_get_chunk_verschiebung(scr_get_chunk_ID_object(item_r.x))*16;
    10. file_bin_write_byte(item_save,0);//0 = item (1 = mob)
    11. file_bin_write_byte_ext(item_save,real(item_r.item_ID)); //item-ID
    12. file_bin_write_byte_ext(item_save,real(item_x));//x-koordinate
    13. file_bin_write_byte_ext(item_save,real(item_r.y));//y-koordinate
    14. file_bin_write_byte_ext(item_save,real(item_r.destroy_time_left));
    15. file_bin_write_byte_ext(item_save,real(item_r.pickUp_time_left));
    16. with item_r instance_destroy(); //Lösche das Item
    17. }
    18. }
    Alles anzeigen


    Was ich bis dato herausfinden konnte ist, dass wenn ich die letzte zeile

    GML-Quellcode

    1. with item_r instance_destroy();

    auskommentiere, kein Bug auftretet.

    Ich glaube der GM versucht auf die x-Koordinate des zerstörten Objekts zuzugreifen. Die Frage aber ist: WIESO? Vor der Abfrage prüfe ich immer das nächste Objekt ab.
    Seht ihr irgendeinen Fehler im Syntax? Evtl übersehe ich etwas.
  • Ich würde mal schätzen, dass instance_find dann eine angegebene Instanz nicht mehr findet, da sich durch das Löschen ja die instance_number geändert hat. Entweder überprüfst du also, obj instance_find eine gültige instanz zurückgibt, oder du löscht alle Instanzen nach der for-Schleife.

    © 2008 by Teamgrill Productions