2016-06-23 8 views
0

Ich habe einen Drachen mit einem Ei. Der Eierknoten ist ein Kind des dragonNode.Wie Kind SKSpriteNode vom Elternteil SKSpriteNode zu entfernen, ohne Kind zu töten

Der Drache fliegt horizontal über den Bildschirm.

Wenn der Drache den rechten Teil des Bildschirms erreicht, wird der Drache auf den linken Teil des Bildschirms zurückgesetzt.

Ich habe den Drachen implementiert, der das Ei in die Position eines Turms auf dem Boden fallen lässt. Der Drache lässt das Ei in Berührungen fallen, indem er diese Funktion benutzt.

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) 
} 

Da jedoch das Ei noch ein Kind des Drachen ist, wird das Ei auf der linken Seite des Bildschirms mit dem Drachen zurückgesetzt, selbst wenn sie fallen gelassen wurde.

Wie behebe ich das? Gibt es eine Möglichkeit, das Kind vom Elternteil zu entfernen, ohne das Ei zu töten?

Antwort

0

Sie können ein Kind nicht von einem Elternteil entfernen, ohne das Kind vollständig aus der Szene zu entfernen. Ich habe mein Problem einfach gelöst:

  1. Entfernen der Eltern/Kind-Beziehung von meinem Code.
  2. setzen createEggnode Funktion in meiner ShootProjektile Funktion. (Funktion bei Berührungen immer noch angerufenEnded)
  3. Setzen Sie die egnNode Position auf die Position des Drachens.