Instanz_erzeugen_Schicht

Mit dieser Funktion können Sie eine neue Instanz des angegebenen Objekts an einem beliebigen Punkt innerhalb des Raums und auf der angegebenen Ebene erstellen. Die Ebene kann durch den Wert der Ebenen-ID identifiziert werden (wie er von der Funktion layer_create()) oder durch den Namen der Ebene (als String, z. B. "instance_layer"), wie er im Raumeditor definiert ist.

Diese Funktion gibt die id der neuen Instanz zurück, die dann in einer Variablen gespeichert und für den Zugriff auf diese Instanz verwendet werden kann. Beachten Sie, dass diese Funktion auch das Ereignis "Create Event " der erstellten Instanz aufruft , bevor sie mit den code oder Aktionen für das Ereignis, das die Funktion aufgerufen hat, fortfährt.

WICHTIG Es gibt eine minimale und maximale Ebenentiefe von -16000 bis 16000. Alles, was auf einer Ebene außerhalb dieses Bereichs platziert wird , wird nicht gezeichnet, obwohl alle Ereignisse weiterhin wie gewohnt ablaufen.

Fakultativ Struktur

Die letzte argument, var_struct, ist optional und nimmt eine Struktur mit zusätzlichen Variablen für die neue Instanz.

Variablen aus dieser Struktur werden auf die neue Instanz angewandt , bevor ihr Create-Ereignis ausgeführt wird, aber nachdem ihre Variablendefinitionen festgelegt wurden.

Das bedeutet, dass die Werte dieser Struktur im Ereignis Create der neuen Instanz lesbar sind. Siehe Beispiel 2 am Ende.

Werte, die über diese Struktur auf die neue Instanz angewendet werden, können von beliebigem Typ sein, einschließlich method Variablen. Eingebaute Variablen können ebenfalls geändert werden.

HINWEIS Variablen aus der Struktur werden in die neue Instanz "oberflächlich kopiert", d. h. alle Arrays, Strukturen und anderen Ressourcen werden per Verweis kopiert und nicht dupliziert.

Syntax:

instance_create_layer(x, y, layer_id, obj);

Argument Typ Beschreibung
x Real The x position the object will be created at
y Real The y position the object will be created at
layer_id Layer ID oder String The layer ID (or name) to assign the created instance to
obj Object Asset The object index of the object to create an instance of
var_struct Struct OPTIONAL Eine Struktur mit Variablen, die der neuen Instanz zugewiesen werden

Rückgabe:

Instance ID

Beispiel 1:

var inst = instance_create_layer(x, y, "Instances", obj_bullet);
with (inst)
{
    speed = other.shoot_speed;
    direction = other.image_angle;
}

Die obige code erstellt eine neue Instanz des Objekts obj_bullet in der Ebene "Instanzen" und speichert die Instanz-ID in einer Variablen. Diese Variable wird dann verwendet, um speed und direction der neuen Instanz zuzuweisen.

Dadurch wird zunächst die Instanz erstellt, ihr Create-Ereignis ausgeführt und dann ihren Variablen Werte zugewiesen.

Wenn Sie einige Variablen zuweisen möchten , bevor das Ereignis Erstellen ausgeführt wird, sehen Sie sich das folgende Beispiel an.

Beispiel 2:

var inst = instance_create_layer(x, y, "Instances", obj_bullet,
{
    speed : shoot_speed,
    direction : image_angle
});

Die obige code erzeugt eine Instanz von obj_bullet und übergibt ein struct als letzte argument.

Diese Struktur hat Variablen für die Geschwindigkeit und die Richtung. Sie bezieht ihre Werte von der aufrufenden Instanz, ohne dass andere verwendet werden müssen.

Diese Variablen werden auf die neue Instanz angewandt, bevor ihr Create-Ereignis ausgeführt wird.

Sie sind nicht auf ein struct-Literal beschränkt, da Sie auch eine Variable übergeben können, die eine vorhandene struct speichert, oder eine new struct aus einer constructor.