2017-08-20 1 views
0

Ich bin auf dieses seltsame Problem gestoßen. Ich füge einen Feind (SKSpriteNode) aus dem GameScene didMove hinzu (um: SKView anzuzeigen) mit addChild.

Der Feind wurde auf x: 100, y: 100 positioniert und es erscheint korrekt. Ich habe auch eine andere Animation, deren Abschluss ich einen anderen Feind an der gleichen Stelle hinzufügen. Aber der Feind erscheint an einem anderen Ort. Der Abschlussblock ist wie unten gezeigt.Positionieren von SkSpriteNode in SkAction-Beendigungshandler

holeExplosion.runHoleExplosionAction {[unowned self] in 
     //self.addEnemy(enemyCount: 1, hole: holeExplosion) 
     var modEnemy: ParentEnemy? = nil 
     modEnemy = Enemy1(imageNamed: "Zombie1Jump1.png", healthPower:30) 

     print(" \(self.scene?.position.x) \(self.scene?.parent) ") 
     self.addChild(modEnemy!) 
     modEnemy!.enemySpeed = self.enemy1Speed 
     modEnemy!.name = "enemy1" 

     modEnemy!.position = CGPoint (x: 100 , y: 100) 
     modEnemy!.zPosition = 2 
    } 

Jede Hilfe würde geschätzt. Vielen Dank.

+0

"Selbst" ist nicht die Szene, Selbst ist der Explosionsknoten, Sie müssen die Szene mit self.scene hinzufügen.addChild (modEnemy!) – Knight0fDragon

+0

Ich überprüft mit self.scene.add es zeigt immer noch an der gleichen Stelle . – vaishakh

+0

was meinst du es "zeigt", Position ist relativ zum Elternteil, nicht absolut. Wenn ein Elternteil 10 Jahre alt ist und ein Kind 20 Jahre alt ist, dann ist das Kind in Wirklichkeit 30 Jahre alt, zeigt aber nur 20 – Knight0fDragon

Antwort

0

Ihre feindliche Klasse haben physicsBody delegieren ?? Vielleicht können Sie das zuerst sehen, denn wenn Sie es haben, müssen Sie Ihre isDynamic Eigenschaft suchen. Sie können nicht zwei Körper im selben Raum haben, wenn die Eigenschaft gleich wahr ist.

+0

Sie können 2 Körper an der gleichen Stelle haben, solange die Kollisionsmaske nicht kollidiert – Knight0fDragon

+0

Der Physikkörper wird in diesem Moment nicht hinzugefügt. Ich habe gerade den 2 Gegnern einen gleichen Ort zur Repräsentation gegeben. Der eine außerhalb der Schließung Positionen fein. Der eine im Inneren des Verschlusses befindet sich an einem völlig anderen Ort – vaishakh

Verwandte Themen