Einzelne Obj vom destroy ausschliessen?

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

  • Einzelne Obj vom destroy ausschliessen?

    Hallo GM´s :happy:

    Hab für mein "Breakout" einen "Bombenstein" gebastelt.
    Mit diesem kurzen Code hab ich ihm zugewiesen, das
    alle Objekte im Umkreis zerstört werden, wenn der Ball
    auftrifft.

    GML-Quellcode

    1. with (all)
    2. {
    3. if (distance_to_object(other) < 70) instance_destroy();
    4. }


    Wie kann ich es anstellen, das der Ball nicht gleich mit
    zerstört wird?

    Also etwa so "zerstöre alle objekte im Umkreis AUSSER Ball"

    Gr
    Vegas
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • Original von battlegorge
    Mach ein neues Parentobjekt.
    Allen Objekten die zerstört werden sollen, weist du unter "parent" dieses Objekt zu.
    Und dann lässt du nur alle Parentobjekte zerstören.


    Geht leider nicht weil die meisten steine im Spiel, schon per
    parent, auf stein 1 verweisen :no:
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • wenn ich dich richtig verstanden habe, wäre das eine Lösung:

    GML-Quellcode

    1. if(id!=other.id)

    oder wenn alle Bälle nicht zersört werden sollen

    GML-Quellcode

    1. if(object_index!=objBall)

    Habs nicht getestet, sollte aber funktionieren
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • Oder du erzeugst einfach ein Explosionsobjekt (kann auch unsichtbar sein), das so groß ist wie die Lücke die nachher von den Steinen hinterlassen werden soll, dass dann eine Kollision mit dem Stein-Parent enthält, in der with(other) instance_destroy() steht.
    Einige meiner Spiele:
  • Etwas um modifiziert:

    GML-Quellcode

    1. instance_deactivate_all(0)
    2. instance_activate_object(Stein1)
    3. instance_activate_object(Stein2)
    4. instance_activate_object(SteinPowerup)
    5. //usw...
    6. with (all)
    7. {
    8. if (distance_to_object(other) < 70) instance_destroy();
    9. }
    10. instance_activate_all()
    Alles anzeigen
  • Also ich bedanke mich hier wieder bei allen aber
    ganz besondes bei @bernt

    ich glaub Du bist der absolute Profi ;)

    Habs noch mal modifiziert und nun kann ich
    "Sprengflächen" jeder Größe einrichten.

    GML-Quellcode

    1. instance_deactivate_object(ball_normal)
    2. with (all)
    3. {
    4. if (distance_to_object(other) < 70) instance_destroy();
    5. }
    6. instance_activate_object(ball_normal)


    Das Leben kann sooooo einfach sein, wenn man Leute kennt,
    die sich mit soetwas auskennen :D
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • @Verwurster

    Warum ist Deaktiveren unsauber? Ich hab diese Metohde jetzt genohmen weil die übersichtlicher ist wenn man nur bestimmte Objekte hat die ein Ereignis machen sollen.

    @VegasX

    Du solltes aufpassen dass, nicht die Powerups auch noch zertstört werden. Aber ich glaub dass du weißt wie man das löst.

    Und zu Verwurster Lösung: Guck mal ganz genau hin. Sollte eigentlich auch funtzen.
  • Original von bernt
    @VegasX

    Du solltes aufpassen dass, nicht die Powerups auch noch zertstört werden. Aber ich glaub dass du weißt wie man das löst.


    Jo, habs schon bemerkt weil auch meine unsichtbaren Sperren
    (rechts und links) mit zerstört wurden und plötzlich der Ball aus dem
    Screen gelaufen ist :D
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............