0

我有一个精灵,我的代码是:

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
}

但是我怎样才能从物理世界中摧毁/移除这些物体呢?

4

1 回答 1

3

我不确定我是否完全理解,但如果您正在寻找一种在碰撞时移除精灵的方法,您必须访问每个物理体的节点属性,并调用它的 removeFromParent 函数。

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

当然,您需要添加额外的逻辑来确定碰撞精灵的位掩码是否与您希望在碰撞期间破坏的位掩码相同。

于 2013-10-01T10:52:37.410 回答