2013-10-01 225 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