我有一个 Sprite ,我的代码是:
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
}
但是我怎样才能从物理世界中销毁/移除这些物体呢?
最佳答案
我不确定我是否完全理解,但如果您正在寻找一种在碰撞时移除 Sprite 的方法,您必须访问每个物理体的节点属性,并调用其 removeFromParent 函数。
[contact.bodyA.node removeFromParent];
[contact.bodyB.node removeFromParent];
当然,您需要添加额外的逻辑来确定碰撞 Sprite 的位掩码是否与您希望在碰撞过程中销毁的 Sprite 相同。
关于ios - 从物理世界中移除物理体的问题(spritekit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114241/