2017-08-20 43 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