2011-02-08 76 views
0

我試圖做一個遊戲,其中球隨機在屏幕上彈跳,然後如果它擊中目標,你贏了比賽。因此,我試圖在球精靈和目標精靈之間創建一個碰撞檢測。該球實現在一個單獨的類從遊戲類完成,並加入目標爲遊戲類,像這樣:碰撞檢測科科斯2D

-(void) targetCollision{ 

    CCSprite *target = [CCSprite spriteWithFile:@"target.png"]; 
    target.position = ccp(400,50); 
    [self addChild:target]; 


    CCSprite *ball = [[Ball alloc] init]; 
    [self addChild:ball]; 

    //CCSprite *ball = [CCSprite spriteWithFile:@"ball2.png"]; 
    //ball.position = ccp(400,75); 
    //id a1 = [CCRotateBy actionWithDuration:1 angle:360]; 
    //id repAct = [CCRepeatForever actionWithAction:a1]; 
    //[ball runAction: repAct]; 
    //[self addChild:ball]; 

    CGRect ballRect = [ball boundingBox]; 
    CGRect targetRect = [target boundingBox]; 

    if (CGRectIntersectsRect(ballRect, targetRect)) { 
     NSLog(@"Target hit! Collision detected"); 
    } 
} 

我能得到這個方法,如果我註釋掉的代碼添加球的工作,但這不是我想要做的。任何幫助將非常感激!

+0

我可以看到球和targ et被添加和球繼續旋轉..所以你的問題是與球的運動? – xuanweng 2011-02-09 04:55:35

回答

-2

如何使用CCScheduler檢查碰撞每minisecond

0

你應該叫時間表更新內部或直接在調度更新方法,你碰撞方法。 喜歡的東西在你的init方法

[self scheduleUpdate]; 
在scheduleUpdate方法

這個 -

你可以叫

[self targetCollision]; 

將確認發生碰撞,一旦球擊中另一球

我希望它清除你的問題