Objekte in Gruppen einteilen - geht das?

  • GM 8

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

  • Objekte in Gruppen einteilen - geht das?

    Hallöchen, ich bin jetzt mit meiner Glücksspiel-Simulation so weit, daß sich 3 Räder drehen und Zufalls-Bilder anzeigen. Jedoch tun alle 3 Räder immer dasselbe, da es sich ja auch um dieselben Objekte handelt, die dort verarbeitet werden. Jetzt mal eine Frage: kann ich irgendwie die Objekte, die zu dem jeweiligen Rad gehören, in eine Gruppe einteilen, so daß sie unabhängig voneinander angesprochen werden können? z.B. dass ich dann sagen kann: "with rad_2 ...." oder so? Und wenn ja: wie definiert man eine solche Gruppe und wo?
    Habe leider darüber so gar nichts in der Dokumentation gefunden.
    Danke schon mal im voraus,
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Ich erinnere mich nicht mehr wie du deine Engine aufgebaut hattest.
    Hast du getrennte Objekte für jedes Rad?

    Wenn ja kannst du diese durch Parents ansprechen.
    Mach ein Objekt ganz ohne Events, dann kannst du bei den Rad-Objekten das Objekt als Parent auswählen.
    Nun sprichst du immer wenn du das parent objekt ansprichst auch alle "anchestors" davon automatisch an.
    Also mit with(parent_obj)

    Leider kann man keine einzelnen Instanzen eines Objektes zum anchestor machen oder nicht.
    Wenn die rad-Objekten in allen Rädern die selben sind musst du es mit Überprüfungen machen.
    Am einfachsten wäre es:

    GML-Quellcode

    1. with(obj_rad)
    2. {
    3. if x = "position des linken rades"
    4. {
    5. // dies wird nur für die linken rad-Objekte ausgeführt
    6. }
    7. else
    8. if x = "position des mittleren rades"
    9. {
    10. // dies wird nur für die mittleren rad-Objekte ausgeführt
    11. }
    12. else
    13. //usw
    14. }
    Alles anzeigen

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Dass muss nicht unbedingt sein.

    Ich beispielsweise hatte des öfteren Probleme dass es mehrere Instanzen eines Objekts gab die alleine angesprochen werden mussten.
    Die Lösung ist so einfach wie auch genial: Referenzen.

    Man weist einer Variable ein Objekt zu, durch dass man es später auch identifizieren kann.
    z.B:

    GML-Quellcode

    1. Radvariable1 = instance_create(x,y,obj_rad);
    2. Radvariable2 = instance_create(x,y,obj_rad);
    3. Radvariable3 = instance_create(x,y,obj_rad);


    Nun kannst du die 3 Räder einzeln ansprechen.
    Wenn du also z.B: möchtest dass NUR das erste Rad sich um einen bestimmten Wert im Koordinatensystem verschiebt, schreibst du einfach:

    GML-Quellcode

    1. Radvariable1.x = 30;


    Das gleiche mit Variablenzuweisungen.

    GML-Quellcode

    1. Radvariable2.irgendeinevariable = 355;


    Hoffe das ist genau das was du suchts. ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von LEWA ()

  • DragonGamer schrieb:

    Hast du getrennte Objekte für jedes Rad?
    Na, eben nicht. Außerdem haben die Objekte schon alle Parents. Trotzdem danke für die Mühe.

    LEWA schrieb:

    Die Lösung ist so einfach wie auch genial: Referenzen.
    Ja, das klingt sehr verheißungsvoll! Werde ich gleich mal ausprobieren. Danke schön!!
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Wenn es bei den 3 Rädern bleibt und du die schon im room platziert hast (also nicht erst nachträglich über instance_create erstellen und in einer Referenz speichern willst), kannst du auch nachträglich leicht Referenzen erstellen.
    zum Beispiel:
    rad1=instance_find(obj_rad,0);
    rad2=instance_find(obj_rad,1);
    rad3=instance_find(obj_rad,2);
    Einige meiner Spiele:
  • Ah ja, danke schön für den Hinweis! Hätte jetzt aber doch noch mal eine Rückfrage: kann ich denn einer Referenz auch mehrere, verschiedene Objekte zuweisen? Und falls ja: wie geht diese Zuweisung? Bei mir will das jedenfalls gar nicht klappen :(
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Archie schrieb:

    Ah ja, danke schön für den Hinweis! Hätte jetzt aber doch noch mal eine Rückfrage: kann ich denn einer Referenz auch mehrere, verschiedene Objekte zuweisen? Und falls ja: wie geht diese Zuweisung? Bei mir will das jedenfalls gar nicht klappen :(
    Archie
    Genau dies geht nicht. Zumindest wenn es nicht alle Objektes des selben Typs betreffen soll (dann parents).
    Du könntest einen array oder eine ds_list machen indem du dann die ID's der ganzen Objekte speicherst.

    Einfacher wäre aber eine dynamische Überprüfung, ist dann auch kompakter denke ich.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Benutzer online 5

    5 Besucher