2016-07-11 6 views
0

저는 게임을 만들고 있고 didBeginContact 함수에서 몇 가지 작업을 구현하고 있습니다.노드를 제거하기 전에 한 번 SKAction에 애니메이션을 적용하십시오.

기본적으로, 내 남자가 projectile 커넥트, 내가 projectile이 사라 할 때 projectile을 던졌습니다의 enemy는 그것은 animation을 수행하기 위해 공격 후 적이 사라.

적 애니메이션이 한 번 재생 된 후 사라지지만 발사체가 나 빠지거나 적과 발사체가 사라지지만 애니메이션이 표시되지 않도록 할 수 있습니다. 내가 node.removeParent() 그냥 노드 모두 박히는 제거 확신

if let node = contact.bodyB.node as? SKSpriteNode { 

       if node.parent != nil { 

        let moveUp = SKAction.moveBy(CGVector(dx: 0, dy: -100), duration: 0.5) 

        let fadeOut = RocketExp 

        let runBlock = SKAction.runBlock{() -> Void in 
         node.removeFromParent() 

        } 

        let remove = SKAction.removeFromParent() 

        let moveAndFade = SKAction.group([moveUp, fadeOut]) 

        let sequence = SKAction.sequence([fadeOut, runBlock, remove]) 


        node.runAction(sequence) 
        node.removeFromParent() 
       } 
      } 

:

여기에 지금까지 내 코드입니다.

답변

1

let enemyCategory: UInt32 = 0x1 << 0 
let missileCategory: UInt32 = 0x1 << 1 

enemy.physicsBody?.categoryBitMask = enemyCategory 
enemy.physicsBody?.contactTestBitMask = missileCategory 

missile.physicsBody?.categoryBitMask = missileCategory 
missile.physicsBody?.contactTestBitMask = enemyCategory 

func didBeginContact(contact: SKPhysicsContact) { 
    if body1.categoryBitMask == enemyCategory && body2.categoryBitMask == missileCategory{ 
     // your code here 
     body2.node?.removeAllActions() 
     body2.node?.removeFromParent() 
    } 
} 
을하고 시도
관련 문제