Zugriff auf die untergeordneten Knoten in spritekit
Hallo an alle ich bin neu im spriteKit und objective-c und ich würde gern ein spriteNode in einer Methode, und entfernen Sie es mit einer anderen Methode (derselben .m-Datei)
In dieser Methode erstelle ich den sprite:
(void)createSceneContents{ /*in this method i create and add the spaceship spriteNode
SKSpriteNode *spaceship = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
//code...
//Add Node
[self addChild:spaceship];
}
Und jetzt würde ich gerne entfernen den Knoten zu berühren, aber ich kenne nur die Methode für Griff-touch-Ereignisse ist:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
Ich versuche, auf mein Raumschiff Knoten, von dort aus kann ich es nicht. Ich habe alles versucht, ohne Erfolg. Gibt es eine Möglichkeit zum senden von einem Knoten aus eine Methode einer anderen?? Oder ohne zu senden, ist es
posible, um den Zugang zu einem Kinder-Knoten aus eine Methode wo es nicht deklariert ist??
InformationsquelleAutor user3033437 | 2013-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Können Sie auch legen Sie den Namen des nodes:
Und Sie können darauf zugreifen, indem name:
<
im<@"NodeName"
ein Tippfehler oder eine syntax, die ich bin nicht vertraut mit?Ich bearbeitet habe, war es Tippfehler, danke für den Hinweis.
InformationsquelleAutor Greg
Ja, es ist ein Weg.
Jeder SKNode-Objekt hat eine Eigenschaft (von der Klasse NSString) "name" genannt. Und Sie können diesen Namen zum aufzählen der Kinder eines Knotens.
Versuchen Sie dies:
und in
touchesBegan
aber vorsichtig sein, damit entfernen Sie alle Knoten mit der Bezeichnung "Raumschiff" aus Eltern werden. Wenn Sie möchten, um mehr selektiv über die Entfernung Prozess, können Sie entweder Unterklasse SKSpriteNode zu halten einige Werte, die Sie verwenden können, um herauszufinden, ob es entfernt werden soll oder nicht, oder können Sie Ihre sprites in die arrays basierend auf Logik und entfernen Sie dann mit dem array.
Glück!
InformationsquelleAutor Kaan Dedeoglu
Mithilfe des "name" - Eigenschaft funktioniert, aber wenn Sie denken, haben Sie nur eine Instanz des Knotens sollten Sie eine Eigenschaft erstellen.
Dann, wenn Sie es hinzufügen möchten:
Dann in touchesBegan:
InformationsquelleAutor CodyMace