Geometry 如何与skshapenode圆发生碰撞

Geometry 如何与skshapenode圆发生碰撞,geometry,sprite-kit,collision,skshapenode,Geometry,Sprite Kit,Collision,Skshapenode,我正在开发一款游戏,该游戏将触摸检测与圆形的skShapenodes结合在一起,但找不到一种好的方法来检查它们是否在触摸。下面是player类的代码 -(void)SpawnPlayer { _player = [[SKShapeNode alloc] init]; CGMutablePathRef myPath = CGPathCreateMutable(); CGPathAddArc(myPath, NULL, 0,0, 15, 0,

我正在开发一款游戏,该游戏将触摸检测与圆形的skShapenodes结合在一起,但找不到一种好的方法来检查它们是否在触摸。下面是player类的代码

-(void)SpawnPlayer
{   
        _player = [[SKShapeNode alloc] init];

        CGMutablePathRef myPath = CGPathCreateMutable();
        CGPathAddArc(myPath, NULL, 0,0, 15, 0, M_PI*2, YES);
        _player.path = myPath;

        _player.lineWidth = 1.0;
        _player.fillColor = [SKColor whiteColor];
        _player.strokeColor = [SKColor whiteColor];
        _player.glowWidth = 0.5;
        _location = CGPointMake(375, 400);
        _player.position = CGPointMake(375, 400);
        _player.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:0.5];
        _player.physicsBody.dynamic = NO;
        _player.physicsBody.categoryBitMask = playerCategory;
        _player.physicsBody.contactTestBitMask = enemyCategory;
        _player.physicsBody.collisionBitMask = 0;


        [self addChild:_player];
}
敌方代码与此类似,只是其位掩码和testbitmask被切换。

将其视为:
categoryBitMask
指定节点的主体类型。
collisionBitMask
指定它可以与哪种类型的实体碰撞。
contactTestBitMask
指定哪种类型的contactTestBitMask将与其交互

e、 g.为了检测玩家和敌人之间的接触,他们的ContactTestBitMask应该是:

_player.physicsBody.categoryBitMask = playerCategory;
_player.physicsBody.contactTestBitMask = playerCategory | enemyCategory ;

对于敌人:

 _enemy.physicsBody.categoryBitMask = enemyCategory;
 _enemy.physicsBody.contactTestBitMask =  playerCategory | enemyCategory ;


现在您可以在
didBeginContact
方法中处理联系人的操作

两个联系人位掩码必须为非零才能创建联系人事件-如果您使用不同的联系人位掩码,它们将不会生成联系人事件。我是一名学生,这是我使用目标c的第一年,请详细说明?