Instance-ID in Action "Set Variable" setzen

  • GM 8

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

  • Instance-ID in Action "Set Variable" setzen

    Liebe Leute,

    nach drei Jahren habe ich mal wieder meine Gamemaker 8.0 Lizenzer herausgekrahmt und bastele mal wieder ein kleines Game.

    Folgendes Problemchen: Ich habe ein Controllerobjekt und an diesem Controllerobjekt möchte ich die Instanz-IDs andere - zur Laufzeit des Spiels erschaffener - Objekte registrieren. Wie das über GML geht weiss ich, allerdings möchte ich probieren, dass mit Actions zu machen. Wird z.B. im Spiel eine Instanz des Objektes inst_ball created, soll die Instanz selbst sich am Controllerobjekt registrieren. Dazu habe ich über das Event "Create" des Balls eine Action "Set Variable" erstellt, dabei mit "applies to" das Controllerobjekt referenziert, bei variable den Variablen name "inst_ball" eingetragen. Im Feld Value habe ich nun schon einiges probiert wie "instance_id", "id", "self.id" usw. allerdings wird der Variablen "inst_ball" nie die tatsächliche ID des Balls zugeordnet. Geht sowas in einer Action nicht, sprich, kann man in einer Action immer nur konstante Werte zuordnen?

    Schönen Gruß
    Andreas
  • Hallo Andreas,

    einer Variable kannst du natürlich auch per D&D-Action "dynamische" Werte zuweisen.
    Ich habe dir mal ein Example gebastelt, das dir hoffentlich zeigt, wie du dein Vorhaben mit D&D-Actions erreichen kannst.
    Einfach die Leertaste drücken :)
    Dateien
    • instance id.zip

      (9,48 kB, 372 mal heruntergeladen, zuletzt: )
  • Dass zunächst die ID des Controllerobjekts angezeigt wird, war von mir so gedacht. Theoretisch kannst du auch "0" oder einen anderen Wert eintragen.
    Hast du schon zu Beginn des Spiels die Instanz eines Ball, dessen ID du dieser Variablen übergeben willst, kannst du auch gleich den Wert obj_ball.id eintragen, wobei automatisch die ID der zuletzt erstellten Ball-Instanz angezeigt werden müsste.
    Vielleicht kannst du mal deine Projektdatei oder deinen Code posten.
  • morschen,

    ah ok. Also ich habe mir jetzt so geholfen, dass ich beim Create des Balls ein Skript aufrufe, welches die Ball-ID am Controllerobjekt registriert, also der Art.

    Quellcode

    1. obj_controller.inst_ball_id = id


    Das klappt wunderbar. Nicht ganz was ich wollte, da ich wo es geht gerne die GM-eigenen dragable Actions verwendet, aber ist ok so. Die Ball-instanz create ich übrigens beim Create des Controllers.

    Projektdatei habe ich gerade nicht da, weil ich an einem anderen Computer sitze.


    Schönen Gruß
    Andreas