我有四根彩色横条。我也有一些确切的颜色从屏幕顶部下降,需要与底部的酒吧匹配,然后从现场删除接触。
(如果下降的黄色条碰到底部的黄色条,则从场景中移除下降的黄色条)
那么,对于枚举中的每个节点,我应该有8个不同的情况而不是4个?这就是它现在的样子:

enum Bodies: UInt32 {
case blueBar = 1
case redBar = 2
case yellowBar = 4
case greenBar = 8

 }

他们中的一些人没有做他们应该做的,这就是我问的原因。提前谢谢。

最佳答案

你要做的并不是枚举,尽管我可以帮忙。听起来你想让两个物体碰撞,其中一个消失。试试这个。

let blueBar = SKSpriteNode(imageNamed: "name of image")
blueBar.name = "Bluebar"

let fallingBlueBar = SKSpriteNode(imageNamed: "name of image")
blueBar.name = "FallingBluebar"

func didBeginContact(contact: SKPhysicsContact) {
    if contact.bodyA.node != nil && contact.bodyB.node != nil {
        let firstBody = contact.bodyA.node as! SKSpriteNode
        let secondBody = contact.bodyB.node as! SKSpriteNode

    if ((firstBody.name == "BlueBar") && (secondBody.name == "FallingBlueBar")) {

         //call the function of what happens when they hit. ex-fall/disappear/explode

        }
    if ((firstBody.name == "FallingBlueBar") && (secondBody.name == "BlueBar")) {

         //call the function of what happens when they hit. ex-fall/disappear/explode


        }
    }
}

从现场移除它。在上面的每个if语句中使用的相同函数中
fallingBlueBar.removeFromParent()

关于swift - 我该如何使两件事互相碰撞然后从场景中移除?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34707711/

10-10 16:45