【问题标题】:How to detect the collision nodes name in skspritekit?如何检测天空精灵中的碰撞节点名称?
【发布时间】:2021-01-17 12:49:24
【问题描述】:

我想检测与我的播放器节点冲突的节点名称。这可能吗?

func didBegin(_ contact: SKPhysicsContact) {
    
    let collision: UInt32 = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask
    
    for i in CollectionObject {
        if collision == Player.physicsBody!.categoryBitMask | i.physicsBody!.categoryBitMask{
            print("hit the object") //here I would like to print the nodes name                
        }
    }
}

【问题讨论】:

    标签: swift sprite-kit skphysicsbody


    【解决方案1】:

    你可以使用

    contact.bodyA.node?.name
    

    contact.bodyB.node?.name
    

    获取相互碰撞的2个节点的名称。

    因此,如果您的播放器节点有一个名称,那么您可以使用类似以下的名称:

    if contact.bodyA.node?.name == "PlayerName"  {
        print(contact.bodyB.node?.name)
    } else if contact.bodyB.node?.name == "PlayerName" {
        print(contact.bodyA.node?.name)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 2013-05-02
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多