具有相同名称

时间:2016-05-17 19:44:10

标签: swift sprite-kit contact skspritenode

我正在尝试制作一个简单的2D平台游戏。而不是导入精灵,我决定使用SpriteKit引擎提供的精灵:在GameScene.sks中,我拖放了一个精灵(简单的红色正方形),我称之为“墙”。我复制并粘贴它,让玩家可以跳上2个墙。在代码部分,我写了以下几行:

var wall = SKSpriteNode()

然后,在“didMoveToView”函数中:

    wall = self.childNodeWithName("wall") as! SKSpriteNode
    wall.physicsBody = SKPhysicsBody(rectangleOfSize: wall.size)
    wall.physicsBody?.affectedByGravity = false
    wall.physicsBody?.dynamic = true
    wall.physicsBody?.allowsRotation = false
    wall.physicsBody?.pinned = true
    wall.physicsBody?.categoryBitMask = physicsCategories.wall
    wall.physicsBody?.contactTestBitMask = physicsCategories.player

因为我在类(“physicsCategories”)之外创建了一个包含各种类别位掩码的结构,当我检查联系人时它工作得很好:

 //CONTACT
func didBeginContact(contact: SKPhysicsContact) {
    let contactMask = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask

    switch contactMask {
    case physicsCategories.player | physicsCategories.wall:
        isGrounded = true
    default:
        print("Some other contact")
    }
}

我的问题是,这只适用于名为“wall”的2个精灵中的一个。有没有办法在代码中引用场景中具有相同名称的所有精灵?像标签或类似“self.childrenNodesWithName(...)”之类的东西,我知道这不是不幸的。 或者我可能做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不是我的Mac,这是网页截图:

enter image description here