2017-03-17 4 views
0

생성과 충돌 감지 생성 된 imageView 블록. 이것이 가능하다면 탐지에 사용 된 코드는 무엇입니까? 나는 다음과 같은 코드를 시도했지만, 제대로 동작하지 않습니다 : "rect1"가 "rect2"를 교차하는 경우는는 프로그래밍 I 프로그래밍 코드를 사용하여 13 개 블록을 만드는거야 <code>viewDidLoad</code>에서 이미지 뷰

if (((CGRectIntersectsRect(_penguin.frame, _iceBlock1.frame)) && (_iceBlock1.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock2.frame)) &&(_iceBlock2.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock3.frame)) && (_iceBlock3.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock4.frame)) && (_iceBlock4.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock5.frame)) &&(_iceBlock5.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock6.frame)) && (_iceBlock6.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock7.frame)) && (_iceBlock7.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock8.frame)) && (_iceBlock8.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock9.frame)) && (_iceBlock9.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock10.frame)) && (_iceBlock10.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock11.frame)) && (_iceBlock11.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock12.frame)) && (_iceBlock12.hidden == NO)) || 
    ((CGRectIntersectsRect(_penguin.frame, _iceBlock13.frame)) &&(_iceBlock13.hidden == NO))) 
    { 
    NSLog(@"A collision was detected"); 
} 
+0

UIKitDynamics를 사용하고 있습니까? – agibson007

+0

UIKitDynamics를 사용하고 있지 않습니다. – Cheesehead1957

답변

0

가 그렇지 않은 경우는 false, true를 돌려 CGRectIntersectsRect.

- (BOOL)didUIImageCollided{ 
    for (int X = 1; X <= 13; X++) 
    { 
    UIImageView *iceBlockX = (UIImageView*)[self.view viewWithTag:X]; 
    if(CGRectIntersectsRect(_penguin.frame, iceBlockX.frame)) 
    { 
       return YES; 
    } 
    } 
    return NO; 
} 
+0

올바른 방향으로 나를 지적 해 주셔서 감사합니다. 그러나 (BOOL) didUIImageCollided는 유효한 Xcode 명령이 아닙니다. 하지만 for 루프와 "UIImageView * iceBlocX ...."코드를 사용하여 충돌 감지를 생성 할 수있었습니다. 마지막으로, "return YES"대신에 충돌을 처리하기위한 코드를 대체했습니다 ("return NO"를 사용할 필요가 없었습니다). 다시 고마워. – Cheesehead1957

+0

- (BOOL) didUIImageCollided가 충돌을 감지하기 위해 생성 한 방법입니다! 잘 대답을 받아 들일 수 있습니까? –

+0

죄송합니다. 처음에는 그 사실을 놓쳤습니다. 나는 당신의 대답을 받아 들일 수는 있지만, 나의 명성이 충분히 높지 않기 때문에 당신을 투표 할 수는 없습니다. – Cheesehead1957