2016-06-23 95 views
0

我有一隻龍拿着一個雞蛋。 eggNode是dragonNode的孩子。如何從父SKSpriteNode中刪除小孩SKSpriteNode而不殺小孩

龍水平飛過屏幕。

當龍到達屏幕的最右側部分時,龍會重置到屏幕的最左側部分。

我已經實施了將蛋滴到地面上的炮塔位置。龍使用這個函數在touchesEnded中滴下蛋。

func shootProjectile(){ 

    //aim 
    let dx = turretNode.position.x - dragonNode.position.x 
    let dy = turretNode.position.y - dragonNode.position.y 
    let angle = atan2(dy, dx) 

    dragonProjectileNode.zRotation = angle 

    //Seek 
    let vx = turrentNode.position.x 
    let vy = turrentNode.position.y 

    let shootAction = SKAction.moveTo(CGPointMake(vx, vy),duration: 2.25) 
    dragonProjectileNode.runAction(shootAction) 
} 

然而,由於雞蛋仍然是龍的孩子,雞蛋將恢復到與龍屏幕的左側,它已被刪除後還是一樣。

我該如何解決這個問題?有沒有辦法在不殺雞蛋的情況下將孩子從父母身上移走?

回答

0

如果不將孩子完全從場景中移出,您不能從父母中移除孩子。我通過簡單地解決了我的問題:

  1. 從我的代碼中刪除父/子關係。
  2. 把createEggNode函數放在我的shootProjectile函數中。 (仍然在touchesEnded上調用函數)
  3. 把eggNode位置放在龍的位置。