2014-05-09 21 views
1

我使用cocos2d v3創建了像fla鳥一樣簡單的遊戲。 接口類:爲什麼碰撞不起作用,cocos2d v3?

@interface GameScene : CCScene<CCPhysicsCollisionDelegate> 

// ----------------------------------------------------------------------- 

+ (GameScene *)scene; 
- (id)init; 

// ----------------------------------------------------------------------- 
@end 

在.m文件:

  _physicsWorld =[CCPhysicsNode node]; 
      _physicsWorld.gravity=ccp(0, 0); 
      _physicsWorld.collisionDelegate=self; 
      _physicsWorld.debugDraw =YES; 
      [self addChild:_physicsWorld]; 
      ......... 
      bird.physicsBody=[CCPhysicsBody bodyWithRect:(CGRect){CGPointZero,bird.contentSize} cornerRadius:0]; 
      [email protected]"birdGroup"; 
      [email protected]"birdCollision"; 
      [_physicsWorld addChild:bird]; 
      ........ 

    tubeBody.physicsBody.collisionGroup [email protected]"tubeGroup"; 
    [email protected]"tubeCollision"; 
    tubeBody.physicsBody.type=CCPhysicsBodyTypeStatic; 

    [_physicsWorld addChild:tubeBody]; 
-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair typeA:(CCNode *)nodeA typeB:(CCNode *)nodeB{ 
    [self endGame]; 
    NSLog(@"end game"); 
    return YES; 
} 

爲什麼方法ccPhysicsCollisionBegin從來沒有打電話?

+0

http://stackoverflow.com/questions/22680338/cocos2d-v3-collision-detection/22684444#22684444 –

回答

2

變化

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair typeA:(CCNode *)nodeA typeB:(CCNode *)nodeB{ 

要:

-(BOOL)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair tubeCollision:(CCNode *)nodeA birdCollision:(CCNode *)nodeB{ 

你有碰撞委託的示例代碼,所以你要它適應您的nodeA上你的代碼是管和節點B的鳥。