object id´s?

  • GM 8

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

  • object id´s?

    Guten abend.
    Ich bastel gerade an meinem kleinen denk/jumpandrun Gamechen,und habe folgendes Problem:
    ich habe einen Raum , indem mehrere Schalter sind, jeder schalter soll etwas anders bewirken.Dabei sollen aber alle Schalter das selbe Object sein. Nun gibt es aber das Problem, dass ich es nicht hinbekommen die Schalter zu individualisieren, da jede variable bei allen Schaltern existiert. Ich denke mir dass jeder der Schalter(bzw jedes Object) in dem Raum so etwas wie eine Id bekommt, ich aber nicht weiß, falls es eine id gibt, wie ich sie ansteuern kann.
  • in dem Raum so etwas wie eine Id bekommt, ich aber nicht weiß, falls es eine id gibt, wie ich sie ansteuern kann.
    Jede Instance im Spiel hat eine eindeutige ID, dafür gibt es die Konstante id, diese Konstante/Variable ist einzigartig bei jeder Instance! (Die du auch im Room-Editor siehst) Wenn du das Objekt aber wieder aus dem Room raustust und neu stetzt ist die ID wieder anders.

    #edit:

    Alternativ kannst du auch eine Variable im Instance Creation Code setzen (Rechtsklick im Room Editor) und dort eine Zahl zuweisen und dann mit Hilfe von if oder switch diese Variable prüfen und die jeweilige Aktion durchführen.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • ok,
    Danke erstmal für die Antwort.
    gibt es denn eine andere Möglichkeit, die schalter (vllt. manuell) zu individualisieren, ohne für jeden schalter ein eigenes Object machen zu müssen?


    edit:
    huch, da war ich wohl zu schnell:-)
    nur verstehe ich nicht ganz wie du dass meinst,
    bzw. wie ich die variable dort hinsetze, und mit meinem schalter in Verbindung bringe.
  • Du machst ein Strg+Rechtsklick auf dein Objekt im Room-Editor und dann gehst du auf Creation Code. Dort gibts du dann ein:

    GML-Quellcode

    1. schalterTyp="Falle"

    Falle ist dein SchalterTyp dann (Zahlen würden auch gehen, mit Strings ist das aber übersichtlicher, wenn auch "uneleganter").

    Dann um die spezifische Aktion auszuführen:

    GML-Quellcode

    1. switch(schalterTyp) {
    2. case "Falle":
    3. //Code
    4. break;
    5. }

    Für einen neuen Schalter Typ einfach das zwischen den { } kopieren und dann Falle umändern.

    Das ist GML, ich weiß nicht inwieweit du das beherrscht da du das nicht in deinem Profil angeben hast. ;)
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Ich versuche alles in GML zu halten, und arbeite auch mit Scripts.
    Bin aber noch recht neu auf dem Gebiet.
    Der "instance creation code" ist ne tolle sache, danke erstmal für die information.
    Nur wäre nun meine nächste frage,"wo" diese inforamtionen aus dem "instance creation code" gespeichert werden, ich gehe mal davon aus, dass wenn ich x angebe sofort die obj_schalter.x gewählt wird.
    liege ich damit richtig?
    Und wird alles was im "instance creation code" steht wie im create oder eher wie im step event ausgeführt?
    Und (ich denke mal den gibt es ^^) mit welchem gml befehl kann ich scripts aufrufen?


    edit:
    hmm erst denken dann schreiben xD, da es der creation code ist, werden wohl 2 meiner fragen überflüssig sein:---)

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

  • Nur wäre nun meine nächste frage,"wo" diese inforamtionen aus dem
    "instance creation code" gespeichert werden, ich gehe mal davon aus,
    dass wenn ich x angebe sofort die obj_schalter.x gewählt wird.
    Dieser Code wird wie das Create-Event behandelt nur das er eben nur für diese Instance ausgeführt wird, vergisst du z.B. ein Schalter dann gibt es diese Variable nicht bei dieser Instance und wenn du versucht die Variable zu "lesen" dann wird eine Fehlermeldung kommen.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Dass die Daten in dem
    Create-Event gespeichert werden, ist mir eben schon klar geworden :) , nur wieso wird eine Fehlermeldung kommen? man kann doch im normalen
    Create-Event auch variablen aufrufen?
    Wenn ich nun aber ganz einfach ein code im schalter object schreibe, der sagt wenn die variable schalter==1
    ist, soll etwas passieren,doch wenn sie ==2 ist etwas anderes, und die variable "schalter" dann im "Instance creation-code" deklariere sollte es doch gehen?