swift - GameScene.sks 中具有相同名称的多个节点

标签 swift sprite-kit contacts skspritenode

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

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

由于我在类之外创建了一个结构体(“physicalCategories”)来保存各种类别位掩码,因此当我检查联系人时,它工作得很好:

 //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")
    }
}

我的问题是,这只适用于 2 个名为“wall”的 Sprite 之一。有没有办法在代码中引用场景中具有相同名称的所有 Sprite ?就像标签或类似“self.childrenNodesWithName(...)”之类的东西,我知道不幸的是它不存在。 或者也许我做错了什么? 预先感谢您。

最佳答案

我没有带 Mac,这是来自网络的屏幕截图:

enter image description here

关于swift - GameScene.sks 中具有相同名称的多个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284982/

相关文章:

swift - 如何在 Swift 中删除 Sprite Kit 中的所有节点?

swift - 在靠近特定点时降低节点速度

swift - 第一次球射得太快

ios - 拒绝联系人访问(联系人框架,iOS)

Swift 在 0 和 1 之间随机 float

IOs App 在模拟器上运行但在设备上崩溃(主要使用 AVFoundation)

ios - Swift 为透明导航栏创建子类

ios - 为表格 View 单元格图像创建圆形图片

ios - 为什么我不能将 ContactBody 转换为 SpriteKit 中的自定义 SKNode

ios - 联系电话 iphone sdk