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

と一緒にチェックしても、同じ場所に表示されます。 – vaishakh

+0

「ショー」とは何を意味しますか?ポジションは親との相対的なものであり、絶対的なものではありません。親が10歳、子供が20歳の場合、実際には30歳ですが、それは20だけ表示されます – Knight0fDragon

答えて

0

あなたの敵のクラスにはphysicsBody delegateがありますか?たぶんあなたが最初にそれを見ることができますそれを持っている場合は、isDynamicプロパティを検索する必要があります。プロパティがtrueの場合、同じスペースに2つのボディを持つことはできません。

+0

コリジョンマスクが衝突しない限り、同じ場所に2つのボディを持つことができます – Knight0fDragon

+0

その時点でフィジックスボディが追加されていません。私はちょうど2人の敵に表現目的のために同じ場所を与えました。クロージャーの外側にあるものは上質です。クロージャ内のものはまったく別の場所にあります – vaishakh

関連する問題