Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何在skspritekit中检测冲突节点名称?_Swift_Sprite Kit_Skphysicsbody - Fatal编程技术网

Swift 如何在skspritekit中检测冲突节点名称?

Swift 如何在skspritekit中检测冲突节点名称?,swift,sprite-kit,skphysicsbody,Swift,Sprite Kit,Skphysicsbody,我想检测名为我的玩家节点colides的节点。可能吗 func didBegin(_ contact: SKPhysicsContact) { let collision: UInt32 = contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask for i in CollectionObject { if collision == Player.physicsBody!.ca

我想检测名为我的玩家节点colides的节点。可能吗

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                
        }
    }
}
你可以用

contact.bodyA.node?.name

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

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

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

谢谢它起作用了!
if contact.bodyA.node?.name == "PlayerName"  {
    print(contact.bodyB.node?.name)
} else if contact.bodyB.node?.name == "PlayerName" {
    print(contact.bodyA.node?.name)
}