我遇到了这个奇怪的问题。我使用addChild从GameScene didMove(查看:SKView)中添加敌人(SKSpriteNode)。
敌人已定位到x:100,y:100,并且它看起来正确。 我也有另一个动画,完成我在同一个位置添加另一个敌人。但敌人出现在不同的位置。完成区块如下所示。在SkAction完成处理程序中定位SkSpriteNode
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
}
任何帮助,将不胜感激。谢谢。
“self”不是场景,self是爆炸节点,需要用self.scene.addChild(modEnemy!)添加到场景中 – Knight0fDragon
我用self.scene.add检查过,它仍然显示在同一位置。 – vaishakh
你是什么意思它“显示”,位置是相对于父母,而不是绝对的。如果父母在10岁,孩子在20岁,那么实际上孩子在30岁,但只会显示20年。 – Knight0fDragon