Cocos2d iphone COCOS2D3.0计算碰撞

Cocos2d iphone COCOS2D3.0计算碰撞,cocos2d-iphone,collision-detection,sprite,Cocos2d Iphone,Collision Detection,Sprite,因此,我的代码正在计算碰撞,但每次都会在分数标签上加4。假设只加1,有人能看到我的错误吗?多谢各位 这是碰撞检测 - (BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair eggCollision:(CCNode *)egg dinoCollision:(CCNode *)dino { [egg removeFromParent]; lifes--; [lifeslabel setString:[NSString strin

因此,我的代码正在计算碰撞,但每次都会在分数标签上加4。假设只加1,有人能看到我的错误吗?多谢各位

这是碰撞检测

- (BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair eggCollision:(CCNode *)egg dinoCollision:(CCNode *)dino
{

[egg removeFromParent];

lifes--;
[lifeslabel setString:[NSString stringWithFormat:@"Lifes: %d", lifes]];

return YES;
}
这是卵子和它的物理体的代码

- (void)addEgg:(CCTime)dt
{
egg = [CCSprite spriteWithImageNamed:@"egg.png"];

int minX = egg.contentSize.height/2 - egg.contentSize.height/2;
int maxX = self.contentSize.height;
int rangeX = maxX - minX;
int randomX = (arc4random() % rangeX) + minX;

egg.position = CGPointMake(randomX, self.contentSize.height + egg.contentSize.height/2);
egg.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, egg.contentSize} cornerRadius:0];
egg.physicsBody.collisionGroup = @"eggGroup";
egg.physicsBody.collisionType  = @"eggCollision";
[_physicsWorld addChild:egg];
}
断点-


代码总体上看起来不错。您可以调试并检查您是否没有将四个egg对象添加到彼此之上吗?你能在
ccPhysicsCollisionBegin
中设置一个断点并检查碰撞是否发生在四个不同的egg实例上吗?我添加了一张图片,显示@Ben GI出现了类似的问题。如果你使用重力,它似乎碰撞了不止一次,即使你看到它只碰撞一次。我不知道如何解决这个问题,但您可以尝试添加一个标志,如果该标志(对象至少发生过一次碰撞)为真,则不要向标签添加更多。希望能有帮助