2013-07-18 4 views
0

Im이 코드를 사용하여 애니메이션에있는 두 이미지 사이의 충돌을 감지하려고 시도하지만 작동하지 않습니다.UIAnimation과의 충돌 감지

[UIView animateWithDuration:5 animations:^{ 
     bird.center = CGPointMake(bird.center.x, 600); 
     fallTimer = [NSTimer scheduledTimerWithTimeInterval:.001 target:self selector:@selector(check) userInfo:nil repeats:YES]; 
    }]; 

-(void)check { 
    if (CGRectIntersectsRect(bird.frame, cat.frame)) { 
     NSLog(@"YES"); 
    } 
} 

어떻게 충돌을 감지 할 수 있습니까?

+0

귀하의 시간 간격은 엄청나게 작습니다 (.001 초). 새의 위치가 그 코드에서 정적 인 것처럼 보입니다. 고양이가 움직이고 있으며 고양이 애니메이션에서 수표를 찍을 수 있습니까? –

+0

고양이가 움직이지 않는 동안 새는 움직이는 동물입니다. –

답변

0

애니메이션이 적용되는 동안보기 프레임을 사용할 수 없으므로 반환 값이 정확하지 않습니다. 대신, layer 뷰에서 presentationLayer을 가져 와서 해당 프레임을 점검 할 수 있어야합니다.

+0

어떻게 그럴 수 있습니까? –

+0

'bird.frame' 대신에'bird.layer.presentationLayer.frame'을 시도해보십시오. – Wain

+0

시도해보십시오. 'id'유형의 객체에서 'frame'속성을 찾을 수 없습니다. 다른 아이디어? –