Objekten eine Variable zuweisen

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

  • Objekten eine Variable zuweisen

    Ist es möglich mehreren Objekten eine Variable zuzuweisen, und dann alle Objekte mit dieser Variable zu löschen?
    Ich arbeite nämlich grade an einem kleinen (fake)Internet-Browser, soweit funktioniert alles, lediglich müsste ich jedes mal, wenn ich eine neue Website öffnen will, alle Objekte auf dem Bildschirm löschen, damit ich nicht mehrere Seiten auf einmal geöffnet habe.
    Ich stelle mir das so vor:
    Website A bekommt die Variable A zugeteilt, so auch der zugehörige Home-Button, und sonstiges, was auf der Website so rumwuselt.
    Nun habe ich Website A offen, und möchte auf website B gehen, dabei müssen aber alle Komponenten, die zu Website a gehören gelöscht werden. Also hab ich mir gedacht, ich könnte alle Objekte, die zur Variable A gehören löschen.
    Geht das so in etwa, bzw. gibt es noch eine andere Möglichkeit?
    Vielen Dank schonmal für Antworten!
    Gm-d´s Problemkind :thumbsup:
  • Ich vermute, Parents sind hier nicht ganz das richtige, da er es ja variablenabhängig will

    vielleicht eher:

    GML-Quellcode

    1. with(all){
    2. if(website="A"){
    3. instance_destroy()
    4. }
    5. }

    das würde jedes Objekt mit dem Wert "A" in der variable "website" zerstören, aber Achtung so bräuchte jedes Objekt die variable "website", ansonsten gibts einen Error.
    Um das zu umgehen kannst du auch einfach vorher mit variable_local_exists(name) prüfen ob das Objekt die Variable überhaupt besitzt, nur um auf der sicheren Seite zu sein.
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • @Larsi
    variable_local_exists gibt es nur in der alten GM version

    Hätte ich ansonsten aber gleich gemacht :D
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Mir ist bis auf Variablen nichts eingefallen, wie ich es machen könnte. Und da ich zuvor schon öfter Schwierigkeiten mit Variablen hatte, ist die Idee mit den Parents wohl die bessere Lösung. Doof nur, dass GMStudio so beschränkt in Sachen Variablen ist.
    Gm-d´s Problemkind :thumbsup:
  • ja okay das wusste ich noch nicht. der Code müsste aber trotzdem funktionieren.
    Notfalls muss man dann doch wirklich jedem Objekt diese Variable geben oder die Errormeldung für uninitialisierte Variablen abschalten.

    Warum haben die eigentlich bei GMS so viel praktisches ausgebaut?...
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Das mit den Variablen ist kein Problem, solange jedes Objekt die Variable hat.

    Bei den Parents brauchst du für jede Seite ein Parent und alle Objekte davon müssen halt dieses als Parent haben. Bei dem Code von TrunX musst du das Objekt in parent einsetzen

    GML-Quellcode

    1. with parent instance_destroy()






    Edit:

    Larsi schrieb:

    Warum haben die eigentlich bei GMS so viel praktisches ausgebaut?...

    Wollten die ja nicht :D
    GMHilfe:
    These functions cannot be used any more due to changes in the underlying runner that GameMaker: Studio uses to generate the device specific packages making it impossible to generate objects, images or code "on the fly" as was done before.


    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe