У меня есть два Sprite Узлов:Sprite Kit - Detect контакт
-(void)createPlayer {
SKSpriteNode *player = [SKSpriteNode node];
player.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:enemy.size];
player.physicsBody.categoryBitMask = playerCategory;
player.physicsBody.contactTestBitMask = enemyCategory;
player.position = CGPointMake(100, 160);
player.name = @"player";
player.zPosition = 100;
[self addChild:player];
}
-(void)createEnemy {
SKSpriteNode *enemy = [SKSpriteNode node];
enemy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:enemy.size];
enemy.physicsBody.categoryBitMask = enemyCategory;
enemy.physicsBody.contactTestBitMask = playerCategory;
enemy.position = CGPointMake(300, 160);
enemy.name = @"player";
enemy.zPosition = 100;
[self addChild:enemy];
}
И следующее MyScene.h
static const uint32_t playerCategory = 0x1 << 0;
static const uint32_t enemyCategory = 0x1 << 1;
Как я могу определить, если они делают контакт, так что я могу добавить действие в результате их контакта?
И в чем проблема? Где у вас есть трудности? –
Как я уже говорил в сообщении выше. Как определить, если они вступают в контакт, поэтому я могу добавить действие в результате их контакта? Итак, если игрок вступает в контакт с врагом, сделайте все возможное. – user2255273
назначьте делегата-контакта на свой SKPhysicsWorld https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsWorld_Ref/Introduction/Introduction.html#//apple_ref/occ/instp/SKPhysicsWorld/contactDelegate затем прослушивать сообщения делегатов-партнеров: https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsContactDelegate_Ref/Reference/Reference.html#//apple_ref/occ/intf/SKPhysicsContactDelegate – LearnCocos2D