我在屏幕上扔了很多物体(每0.1秒一个沙滩球)并将它们朝向一个盒子滑动,球在离开屏幕或击球后被回收。我遇到的问题是当多个球撞到盒子时,帧速率急剧下降。我不确定是什么让这种情况发生。是否有更好的方法来执行以下操作,以便它不会滞后?我使用默认的cocos库来播放声音。
-(void)ccPhysicsCollisionPostSolve:(CCPhysicsCollisionPair *)pair can:(CCNode *)nodeA wildcard:(CCNode *)nodeB {
if([nodeB.physicsBody.collisionType isEqualToString:@"hit"]){
[[_physicsNode space] addPostStepBlock:^{
[self remove:nodeA];
} key:nodeB];
}else if([nodeB.physicsBody.collisionType isEqualToString:@"floor"]){
[[_physicsNode space] addPostStepBlock:^{
[self remove:nodeA];
} key:nodeB];
}else {
[self playSound:@"collide.mp3" bg:YES];
}
}