ios - 从物理世界中移除物理体的问题(spritekit)

标签 ios sprite-kit

我有一个 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/

相关文章:

iphone - 我们可以根据内容放大 WebView 的高度吗?

ios - Swift - 应用程序在设置 UserDefaults 后崩溃

swift - 使物理体在物体上具有一定的尺寸和位置。(SpriteKit)

swift - 如何在自动生成时翻转 SKSPriteNode

swift - SKSpriteNode 在 init(NSCoder) 中设置颜色

IOS/objective-C : Get value of property of object in array

ios - 如何在iCloud Drive上备份和还原.zip文件?

ios - 如何使用 Swift 正确切换 SpriteKit 中的 SKScenes?

swift - iPad 纵向方向不明原因

ios - 在 Sprite 工具包中将文本写成一个圆圈(swift)