2016-05-11 25 views
0

Ich versuche, einen Bluteffekt in meinem Spiel zu erstellen, um dies zu erreichen, muss ich testen, ob das Blutpartikel eine andere Instanz aus einem Array trifft oder nicht. Ich habe bereits die Array einrichten und eine Möglichkeit zu testen, ob das Objekt in dem Array ist, aber wenn ich dies tun:Holen Instanz unter einem anderen

platform = instance_position(x, y, all); 

Es wird das Blut Partikel selbst zielt, während ich die Instanz unter möge. Gibt es eine Möglichkeit, das Blutpartikel zu ignorieren und stattdessen die darunter liegende Instanz zu betrachten? Ich kann die Tiefe nicht ändern, weil ich möchte, dass sie vorne ist.

Vielen Dank für Ihre Zeit :)

Antwort

0

Wenn Sie für eine Kollision mit einem Objekt oder Instanz überprüfen, können Sie den Objektnamen oder Instanz-ID anstelle des alle Schlüsselwort verwenden. Beispiel:

var ins = instance_position(x, y, objWall); 

wenn Instanzen von objWall detektiert werden, die ID des ersten dieser beiden Fälle wird zurückgegeben. Wenn Sie stattdessen eine Instanz-ID verwenden, wird nur auf diese einzelne Instanz geprüft.

Wenn Sie nach mehreren verschiedenen Instanzen suchen müssen, können Sie das Array durchlaufen, eine Überprüfung pro Instanz-ID durchführen und die Schleife stoppen, wenn eine davon gefunden wird.

Wenn Sie nach mehreren Objekttypen suchen müssen, können Sie diesen Objekten ein Elternobjekt zuweisen und dann nach dem übergeordneten Element suchen. Beispiel: Erstelle vier Objekte, objBallParent, objFootball, objBouncyBall, objCannonBall. Legen Sie in den Objekteigenschaften jedes Balls objBallParent als das Parent-Objekt fest.

if (instance_exists(objBallParent) { 
    // Do something 
} 

var closest = instance_nearest(x, y, objBallParent); 

Der obige Code nur prüft, ob das übergeordnete Objekt, aber die Funktionen werden von allen Instanzen erfüllt sein von dem Kind als auch Objekte. In diesem Fall, wenn es eine Instanz von objFootball im Raum ist, die als eine Instanz von objBallParent bestehenden, und es kann auch zurückgegeben wird durch die instance_nearest Funktion zählen.

Bei der Prüfung auf Kollisionen mit objBallParent würde jedes der drei untergeordneten Objekte von der Prüfung akzeptiert werden.

Verwandte Themen