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.
"Selbst" ist nicht die Szene, Selbst ist der Explosionsknoten, Sie müssen die Szene mit self.scene hinzufügen.addChild (modEnemy!) – Knight0fDragon
Ich überprüft mit self.scene.add es zeigt immer noch an der gleichen Stelle . – vaishakh
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