instance_destroy - Problem

  • GM 8

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

  • instance_destroy - Problem

    Diesmal habe ich folgendes Problem, ich schätze, es ist relativ simpel, aber ich komm einfach nicht drauf und finde einfach nichts dazu:

    Ich habe ein obj_planet. Dort im Step-Event steht nun folgendes:

    GML-Quellcode

    1. if collision_circle(x,y,30,obj_komet1,1,0);
    2. {
    3. // obj_komet1 soll dann zerstört werden
    4. }


    Mit "with {instance_destroy()}" geht's leider nicht, dabei werden ja alle Instanzen des obj_komet1 zerstört.
    Ich bräuchte also etwas wie: with obj_komet1 other, glaube ich.

    Andere Möglichkeit wäre natürlich diese Kollisionsabfrage in obj_komet1 mit reinzuschreiben, allerdings schätze ich, dass es für die Perfomance besser ist, wenn ich diese Abfrage nur in dem obj_planet habe, was nur einmal existiert.

    Gruß
    DT

    PS: Schon fast 4 Uhr, d.h. ich sitz an diesem Problem schon 3 Stunden :cursing:
    :) :( ;) :P 8) :D ;( :rolleyes: :huh: :S X( 8| ?( :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :heul: :para:
  • Ok, das funktioniert, ich wusste nicht, dass die Funktion die ID wiedergibt.
    Aber noch eine Frage zur Perfomance: Was ist die beste Lösung?
    1) Die hier angestrebte Lösung
    2) Die Kollisionabfrage (mit collision_circle) im obj_komet1 reinzuschreiben - obj_komet1 kann aber durchaus bis zu 30 mal gleichzeitig auf dem Bildschirm auftauchen
    3) Ein unsichtbares Objekt mit der Größe des collision_circles erstellen und das GM Kollisions-Event benutzen
    :) :( ;) :P 8) :D ;( :rolleyes: :huh: :S X( 8| ?( :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :heul: :para:
  • ich versteh nicht warum du nicht gleich bei deinem planet das kollisions event benutz.


    Weil mein obj_planet nur 2x2 Pixel groß ist, der Rest wird mit draw_circle und Partikeln dargestellt.
    Ok, ich könnte doch gleich den Planeten dementsprechend groß machen und unsichtbar. (Da hatte ich einen kleinen Denkfehler drin :wacko: )

    Aber die Frage, was nun am besten für die Perfomance ist, bleibt weiterhin:
    1) Die hier angestrebte Lösung
    2) Die Kollisionabfrage (mit collision_circle) im obj_komet1 reinzuschreiben - obj_komet1 kann aber durchaus bis zu 30 mal gleichzeitig auf dem Bildschirm auftauchen
    3) obj_planet so groß machen wie er gewünscht ist und das GM Kollisions-Event benutzen
    :) :( ;) :P 8) :D ;( :rolleyes: :huh: :S X( 8| ?( :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :heul: :para:
  • Das geht aber auch wieder nur, wenn mein Planet dementsprechend groß ist. Das Problem ist ja mittlerweile nicht mehr, dass es nicht so funktioniert wie es soll, sondern einfach nur noch, was die Perfomance am wenigsten beeinflusst, da ich mal gelesen habe, dass bestimme Kollisionsfunktionen sehr Ressourcen fressend sind.
    :) :( ;) :P 8) :D ;( :rolleyes: :huh: :S X( 8| ?( :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :heul: :para:
  • 1 ist natürlich schneller als 2. Wies mit 3 im Vergleich aussieht, müsstest du mit einem Test herausfinden. (Zb ganz viele Kometen und Planeten einfügen und beide Varianten testen)

    © 2008 by Teamgrill Productions