Geometry 如何与skshapenode圆发生碰撞
我正在开发一款游戏,该游戏将触摸检测与圆形的skShapenodes结合在一起,但找不到一种好的方法来检查它们是否在触摸。下面是player类的代码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,
-(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的第一年,请详细说明?