2013-10-01 3 views
0

У меня есть один спрайт и мой код:Проблема с удалением физики тела от физического мира (spritekit)

sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2]; 
sprite.physicsBody.dynamic = YES; 
sprite.physicsBody.affectedByGravity = YES; 
sprite.physicsBody.mass = 550.0f; 
sprite.physicsBody.categoryBitMask = 1; 
sprite.physicsBody.collisionBitMask = 1; 
sprite.physicsBody.contactTestBitMask = 1; 

я могу обнаружить коллизию в:

- (void)didBeginContact:(SKPhysicsContact *)contact { 
    // destroy contact.bodyA , contact.bodyB 
} 

Но как я могу уничтожить/удалить эти тела из мира физики?

ответ

3

Я не уверен, полностью ли я понимаю, но если вы ищете способ удаления ваших спрайтов при столкновении, вам нужно получить доступ к свойству узла физического тела и вызвать его функцию removeFromParent.

[contact.bodyA.node removeFromParent]; 
[contact.bodyB.node removeFromParent]; 

Конечно, вы хотите, чтобы добавить дополнительную логику для определения битовых масок сталкивающихся спрайтов, являются ли такими же, как те, которые вы хотите уничтожить во время столкновения.

+6

, и если вы просто хотите удалить тело, но сохраните спрайт, просто используйте: sprite.physicsBody = nil; – LearnCocos2D

Смежные вопросы