2016-06-23 3 views
0

У меня есть дракон с яйцом. EggNode является дочерним элементом dragonNode.Как удалить дочерний SKSpriteNode из родительского SKSpriteNode без убийства ребенка

Дракон летит поперек экрана по горизонтали.

Когда дракон достигает самой правой части экрана, дракон сбрасывается в самую левую часть экрана.

Я реализовал дракона, сбросив яйцо на место башни на земле. С помощью этой функции дракон бросает яйцо в прикосновениях.

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 позиции в положение дракона.
Смежные вопросы