Sprite kit 我怎样才能摧毁一具尸体?

Sprite kit 我怎样才能摧毁一具尸体?,sprite-kit,skphysicsbody,Sprite Kit,Skphysicsbody,在我比赛的某些时候,我希望一吨球落在屏幕上。一旦它们落地反弹,我希望它们就坐在那里,不再需要移动 一旦我得到了200个物理实体,游戏就会变得非常慢,所以我想销毁这些实体。以下是我在代码中尝试的内容: -(void)didBeginContact:(skphysiccontact*)联系人{ if(触点触点y

在我比赛的某些时候,我希望一吨球落在屏幕上。一旦它们落地反弹,我希望它们就坐在那里,不再需要移动

一旦我得到了200个物理实体,游戏就会变得非常慢,所以我想销毁这些实体。以下是我在代码中尝试的内容:

-(void)didBeginContact:(skphysiccontact*)联系人{
if(触点触点y<150){
如果(contact.bodyA.categoryBitMask==MYPhysicsCategoryBall){
NSLog(“主体a是球”);
contact.bodyA=nil;
}
if(contact.bodyB.categoryBitMask==MYPhysicsCategoryBall){
NSLog(@“身体b是武器”);
}
}

这不起作用,因为contact.bodyA和contact.bodyB都是只读的,所以我必须解决这个问题,但除此之外,将实际物理体设置为零会破坏它并使物理模拟器运行得更快吗?还是有更好的方法来解决性能问题?我希望能够添加200多个球,可能500或600个。

使用
contact.bodyA.node.physicsBody

-(void)didBeginContact:(skphysiccontact*)联系人{
if(触点触点y<150){
如果(contact.bodyA.categoryBitMask==MYPhysicsCategoryBall){
NSLog(“主体a是球”);
//contact.bodyA=nil;
contact.bodyA.node.physicsBody=nil;
}
if(contact.bodyB.categoryBitMask==MYPhysicsCategoryBall){
NSLog(@“身体b是武器”);
}
}

我还没有测试过它,但是使用
contact.bodyA.node.physicsBody

-(void)didBeginContact:(skphysiccontact*)联系人{
if(触点触点y<150){
如果(contact.bodyA.categoryBitMask==MYPhysicsCategoryBall){
NSLog(“主体a是球”);
//contact.bodyA=nil;
contact.bodyA.node.physicsBody=nil;
}
if(contact.bodyB.categoryBitMask==MYPhysicsCategoryBall){
NSLog(@“身体b是武器”);
}
}

我还没有测试过它,但是使用
contact.bodyA.node.physicsBody

-(void)didBeginContact:(skphysiccontact*)联系人{
if(触点触点y<150){
如果(contact.bodyA.categoryBitMask==MYPhysicsCategoryBall){
NSLog(“主体a是球”);
//contact.bodyA=nil;
contact.bodyA.node.physicsBody=nil;
}
if(contact.bodyB.categoryBitMask==MYPhysicsCategoryBall){
NSLog(@“身体b是武器”);
}
}

我还没有测试过它,但是使用
contact.bodyA.node.physicsBody

-(void)didBeginContact:(skphysiccontact*)联系人{
if(触点触点y<150){
如果(contact.bodyA.categoryBitMask==MYPhysicsCategoryBall){
NSLog(“主体a是球”);
//contact.bodyA=nil;
contact.bodyA.node.physicsBody=nil;
}
if(contact.bodyB.categoryBitMask==MYPhysicsCategoryBall){
NSLog(@“身体b是武器”);
}
}
不过我还没有测试过