2017-08-20 41 views
0

我遇到了这个奇怪的问题。我使用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 
    } 

任何帮助,将不胜感激。谢谢。

+0

“self”不是场景,self是爆炸节点,需要用self.scene.addChild(modEnemy!)添加到场景中 – Knight0fDragon

+0

我用self.scene.add检查过,它仍然显示在同一位置。 – vaishakh

+0

你是什么意思它“显示”,位置是相对于父母,而不是绝对的。如果父母在10岁,孩子在20岁,那么实际上孩子在30岁,但只会显示20年。 – Knight0fDragon

回答

0

你的敌人有物理身体委托?也许你可以首先看到它,因为如果它有它,你必须搜索你的isDynamic属性。当属性等于true时,不能在同一空间中放置两个物体。

+0

只要碰撞掩模不碰撞,你就可以在同一个点上拥有2个物体 – Knight0fDragon

+0

那时不添加物理体。我刚刚给了2个敌人一个相同的位置表示的目的。封闭位置以外的位置正常。封闭内部的位置完全不同 – vaishakh