0

スプライトが 1 つあり、コードは次のとおりです。

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 に答える