2011-02-08 4 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

+0

잘 공 이동이 다른 클래스에서 정의 된 다음 줄이있는 장면에 추가됩니다. CCSprite * ball = [[Ball alloc] init]; [self addChild : ball]; 기본적으로 스크린과 고정 된 타겟 주위로 무작위로 튀는 공이 있습니다. 공이 목표 위에 놓이거나 충돌 할 때 콘솔에 충돌이 감지되었다고 말하고 싶습니다. – Tossy12

답변

-2

사용에 대해 충돌마다 minisecond

0

을 확인 CCScheduler 방법 당신은 일정 업데이트 내부 또는 직접 일정 업데이트 방법에 당신 충돌 ​​메소드를 호출 할 필요가 있습니다. 당신이 충돌을 확인합니다

[self targetCollision]; 

를 호출 할 수 있습니다 scheduleUpdate 방법에

[self scheduleUpdate]; 

당신의 init 메소드에서 this-

같은 뭔가 빨리 볼이 다른 볼

내가 희망을 명중 너의 문제를 해결한다