2016-06-23 49 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位置放在龙的位置。