Instance ID nach erstellen des Objekts erkennen und Variablen für Objekt manipulieren

    Instance ID nach erstellen des Objekts erkennen und Variablen für Objekt manipulieren

    Heyho ^^

    Ich arbeite momentan an einem UI mit Buttons, und wenn man auf einen gewissen Button klickt, werden links von ihm nach unten weg weitere Objekte erzeugt. Klappt auch super, nur würde ich jetzt gerne für jeden der einzelnen Buttons Variablen wie zB den Namen ändern. Wie gehe ich das am besten an?

    Für alle bestehenden Buttons am Anfang (Start Game, Options, Help und Quit) habe ich die Instance IDs bereits geändert, um sie einfacher abzurufen. Die Buttons sind durchnummeriert (action = 0 bis 3). Wird ein Button angeklickt, ändert sich clicked von false auf true. Wird der erste Button angeklickt, wird das scCreateMoreButtons() Script ausgeführt.

    Das Script scCreateMoreButtons():

    GML-Quellcode

    1. instance_create(x+232, y, oButton);
    2. with (oButton)
    3. {
    4. text = argument0;
    5. action = argument3;
    6. clicked = false;
    7. }
    8. instance_create(x+232, y+64, oButton);
    9. with (oButton)
    10. {
    11. text = argument1;
    12. action = argument4;
    13. clicked = false;
    14. }
    15. instance_create(x+232, y+128, oButton);
    16. with (oButton)
    17. {
    18. text = argument2;
    19. action = argument5;
    20. clicked = false;
    21. }


    Das with() wird leider für alle Buttons ausgeführt wie ich feststellen musste, allerdings soll jedes with statement nur zu dem davor erstellten Button passen. Ich dachte also, ich müsste statt oButton die passende Instance ID nehmen, aber wie rufe ich diese passend ab?

    Würde mich über Hilfe sehr freuen ^^
    Es gibt 10 Arten von Menschen: Diejenigen, die Binärcode verstehen und die, die es nicht tun ^^
    Alternativ kannst du auch eine zusätzliche Variable erstellen in der du die Objekt ID speicherst.
    instance_create gibt dir immer die ID deines erzeugten Objektes zurück.
    Mit der Variable hast du den Vorteil auch zu späterer Zeit über dein Erzeugerobjekt auf dein Button zugreifen zu können.

    Quellcode

    1. var obj_btn; //ggf. im Create Event deklarieren wenn du sie später noch benutzen willst
    2. obj_btn = instance_create(x+232, y, oButton);
    3. with (obj_btn)
    4. {
    5. text = argument0;
    6. action = argument3;
    7. clicked = false;
    8. }


    bzw. gehts auch ohne dem with:

    Quellcode

    1. var obj_btn;
    2. obj_btn = instance_create(x+232, y, oButton);
    3. obj_btn.text = argument0;
    4. obj_btn.action = argument3;
    5. obj_btn.clicked = false;
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Gray