我怎样才能让事情发生碰撞并做事呢?

时间:2015-02-21 10:22:19

标签: swift enums sprite-kit skphysicsbody

我一直试图这样做多年,我想做的是,我有一个火箭和导弹在我的场景中下来我想要一个非常简单的解释如何这样做,所以当导弹碰撞使用火箭它将在你的代码中运行一个函数只需调用函数" func"和 我对SKPhysicsBody和enums不是很熟悉,所以请解释一下(这是swift spriteKit)。 在此先感谢。

1 个答案:

答案 0 :(得分:0)

我会评论,但我没有足够的声誉XD。我在youtube上观看了一个教程,解释了如何通过碰撞删除。 https://www.youtube.com/watch?v=ylIIy5EbsWQ

 func didBeginContact(contact: SKPhysicsContact!){

    // Body1 and 2 depend on the categoryBitMask << 0 und << 1
    var firstBody:SKPhysicsBody
    var secondBody:SKPhysicsBody

    if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask){
        firstBody = contact.bodyA
        secondBody = contact.bodyB
    }else{
        firstBody = contact.bodyB
        secondBody = contact.bodyA
    }

    torpedoDidCollideWithAlien(contact.bodyA.node as SKSpriteNode, alien: contact.bodyB.node as SKSpriteNode)


}

func torpedoDidCollideWithAlien(torpedo:SKSpriteNode, alien:SKSpriteNode){
    println("HIT")
    torpedo.removeFromParent()
    alien.removeFromParent()
    aliensDestroyed++

    if (aliensDestroyed > 30){
        var transition:SKTransition = SKTransition.flipHorizontalWithDuration(0.5)
        var gameOverScene:SKScene = GameOverScene(size: self.size, won: true)
        self.view.presentScene(gameOverScene, transition: transition)
    }
}