Swift 如何在某个位置随机拾取节点?

Swift 如何在某个位置随机拾取节点?,swift,sprite-kit,Swift,Sprite Kit,我有五个不同颜色的圆圈,每个圆圈在同一个函数中调用,但物理实体和名称不同。我希望它们都从屏幕底部向上移动,一次只从一个设置位置(即CGPointMake(100,-500))在屏幕上移动一个节点,就像在生成一个随机着色的节点后,4秒钟后会出现另一个随机拾取的节点一样 有没有一种方法可以让所有人都单独识别并做到这一点 代码: 非常感谢你的帮助 您可以使用SKNode的name属性 从: 用于为节点指定名称以供以后参考。在选择 对于节点的名称,您应该决定每个节点是否获得唯一的 名称,或者某些节点是否

我有五个不同颜色的圆圈,每个圆圈在同一个函数中调用,但物理实体和名称不同。我希望它们都从屏幕底部向上移动,一次只从一个设置位置(即CGPointMake(100,-500))在屏幕上移动一个节点,就像在生成一个随机着色的节点后,4秒钟后会出现另一个随机拾取的节点一样

有没有一种方法可以让所有人都单独识别并做到这一点

代码:


非常感谢你的帮助

您可以使用
SKNode
的name属性

从:

用于为节点指定名称以供以后参考。在选择 对于节点的名称,您应该决定每个节点是否获得唯一的 名称,或者某些节点是否共享公共名称。如果你给 节点是唯一的名称,您可以稍后通过调用 childNodeWithName:方法。如果一个名称由多个节点共享,则 名称通常意味着这些对象在您的应用程序中都是类似的对象类型 游戏在这种情况下,可以通过调用 枚举名为:usingBlock:method的子节点


您可以使用
SKNode
的name属性

从:

用于为节点指定名称以供以后参考。在选择 对于节点的名称,您应该决定每个节点是否获得唯一的 名称,或者某些节点是否共享公共名称。如果你给 节点是唯一的名称,您可以稍后通过调用 childNodeWithName:方法。如果一个名称由多个节点共享,则 名称通常意味着这些对象在您的应用程序中都是类似的对象类型 游戏在这种情况下,可以通过调用 枚举名为:usingBlock:method的子节点


当节点拥有自己的物理实体时,这是否也起作用?这正是我想要的。当给节点自己的物理体时,这也起作用吗?这才是我真正想要的。
      func circles() {

     let sprites = SKSpriteNode(imageNamed: "Circle1")
       sprites.position = CGPointMake(45, -200)

        sprites.physicsBody = SKPhysicsBody(circleOfRadius: 40)
        sprites.physicsBody?.dynamic = true
        sprites.physicsBody?.affectedByGravity = false
        sprites.physicsBody?.categoryBitMask = BodyType.player.rawValue
        sprites.physicsBody?.contactTestBitMask = BodyType.enemy.rawValue | BodyType.other.rawValue | BodyType.seven.rawValue | BodyType.nine.rawValue | BodyType.five.rawValue

        sprites.size = CGSizeMake(45, 45)
        all.addChild(sprites)
        let sprite2 = SKSpriteNode(imageNamed: "Circle2")
        sprite2.position = CGPointMake(60, -750)
        sprite2.physicsBody = SKPhysicsBody(circleOfRadius: 40)
        sprite2.physicsBody?.categoryBitMask = BodyType.eight.rawValue
        sprite2.physicsBody?.contactTestBitMask = BodyType.nine.rawValue | BodyType.other.rawValue | BodyType.five.rawValue | BodyType.enemy.rawValue | BodyType.seven.rawValue
        sprite2.physicsBody?.dynamic = true
        sprite2.physicsBody?.affectedByGravity = false

        sprite2.size = CGSizeMake(45, 45)
         addChild(sprite2)
        let sprite3 = SKSpriteNode(imageNamed: "circle3")
        sprite3.position = CGPointMake(100, -1200)
        sprite3.physicsBody = SKPhysicsBody(circleOfRadius: 40)
        sprite3.physicsBody?.categoryBitMask = BodyType.six.rawValue
        sprite3.physicsBody?.contactTestBitMask = BodyType.seven.rawValue | BodyType.other.rawValue | BodyType.five.rawValue | BodyType.enemy.rawValue | BodyType.nine.rawValue
        sprite3.physicsBody?.dynamic = true
        sprite3.physicsBody?.affectedByGravity = false

        sprite3.size = CGSizeMake(45, 45)
        addChild(sprite3)
        let sprite4 = SKSpriteNode(imageNamed: "Circle4")
        sprite4.position = CGPointMake(150, -1400)
        sprite4.physicsBody = SKPhysicsBody(circleOfRadius: 40)
        sprite4.physicsBody?.categoryBitMask = BodyType.ground.rawValue
        sprite4.physicsBody?.contactTestBitMask = BodyType.other.rawValue | BodyType.player.rawValue | BodyType.five.rawValue | BodyType.enemy.rawValue | BodyType.seven.rawValue
        sprite4.physicsBody?.dynamic = true
        sprite4.physicsBody?.affectedByGravity = false

        sprite4.size = CGSizeMake(45, 45)
        addChild(sprite4)
        let sprite5 = SKSpriteNode(imageNamed: "Circle5")
        sprite5.position = CGPointMake(200, -850)
        sprite5.physicsBody = SKPhysicsBody(circleOfRadius: 40)
        sprite5.physicsBody?.categoryBitMask = BodyType.ya.rawValue
        sprite5.physicsBody?.contactTestBitMask = BodyType.five.rawValue | BodyType.player.rawValue | BodyType.other.rawValue | BodyType.seven.rawValue | BodyType.nine.rawValue


        sprite5.physicsBody?.dynamic = true
        sprite5.physicsBody?.affectedByGravity = false
        sprite5.size = CGSizeMake(45, 45)
        addChild(sprite5)
          }