2016-05-23 7 views
1

So ist es eine sehr einfache Frage: Ich habe eine SKSpriteNodefullPiece und wenn es einen Punkt trifft, möchte ich es kopieren und die Kopie an einen anderen Elternteil übertragen. Also, was ich tue, ist diesWie man einen SkspriteNode kopiert, aber sie getrennt hält

Im Kopieren des Objekts, dann Entfernen der alten, dann die Kopie hinzufügen. Später entferne ich jedoch die Vollfigur wieder und die Kopie, oder was auch immer dort ist, verschwindet. Wie kann ich das richtig machen?

+0

Ich weiß, das ein Jahr später, aber ich denke, die Linie 'var tempPiece = fullPiece' nicht' fullPiece' kopiert (als Klassen Referenztypen sind). Statt dessen geben Sie 'fullPiece' einen anderen Namen, um von' tempPiece' aufgerufen zu werden. Um einen 'SKSpriteNode' zu ​​kopieren, müssen Sie die Methode' copy() 'verwenden. [Hier finden Sie ein Beispiel] (http://stackoverflow.com/questions/38928009/in-swift-is-it-possible-to-create-an-sksprittenode-by-directly-copying-it-from-a). Sie müssen jedoch vorsichtig sein, da es einen Fehler beim Kopieren von 'SKSpriteNode's gibt. Die 'physicsBody?' Eigenschaft scheint nicht kopiert zu werden. – mogelbuster

Antwort

0

Dies könnte genug sein:

var tempPiece: SKSpriteNode! = SKSpriteNode() 
tempPiece = fullPiece 
tempPiece.name = "tempPiece" 
collectionOfParts.addChild(tempPiece) 
fullPiece.removeFromParent() 
... 
+0

danke krank überprüfen, ob es funktioniert –

+0

nein hat nicht funktioniert –

+0

Können Sie Ihren Code posten? Mehr Code, den ich meinte. –