2012-05-03 4 views
0

저는 iPhone 프로그래밍에 익숙합니다. 현재는 ballsplit 게임을하고 있습니다. 이 게임에서 내 총알이 공을 때리면 두 개의 새로운 공을 만들고 싶습니다. 내 총알과 공은 모두 uiimageview입니다. CGRect Collision with Multiple CGRect

-(void)createball{ 
    if (ball) { 
     imageMove1 = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,50 ,50)]; 
     UIImage *imag = [UIImage imageNamed:@"ball1.png"]; 
     [imageMove1 setImage:imag]; 
     [self.view addSubview:imageMove1]; 
     [ballArray addObject:imageMove1]; 

     imageMove2 = [[UIImageView alloc] initWithFrame:CGRectMake(x,y,50 ,50)]; 
     UIImage *imag1 = [UIImage imageNamed:@"ball1.png"]; 
     [imageMove2 setImage:imag1]; 
     [self.view addSubview:imageMove2]; 
     [ballArray addObject:imageMove2]; 
     ball=FALSE; 
     [self performSelector:@selector(moveball)]; 
    } 
} 

지금 총알이 두있는 UIImageView 중 하나 칠 때,이 두 uiimgeview을 만든 후 나는 그것을 내 만들어 볼 기능 .. 원하는 여기

if ((CGRectIntersectsRect(bullet.frame,Ball.frame)) && !(ball)){ 
    ball=TRUE; 
    x=Ball.frame.origin.x; 
    y=Ball.frame.origin.y; 
    [self performSelector:@selector(createball)]; 
} 

: 여기

내 코드입니다 또 다른 두 개의 uiimageviews를 만듭니다. 하지만 우리는 이러한 새로운있는 UIImageView의 프레임을 얻을 수있는 방법에 직면 문제 ...

+2

Welcome to StackOverflow. 여기에서 새로 워서, [FAQ] (http://stackoverflow.com/faq)를 꼭 읽어보십시오. 또한 적절한 문법 및 코드 형식 지정이 필요하며 이는 고용인 용 웹 사이트가 아니라는 점을 기억하십시오. –

답변

2

당신이 볼 이미지에 대한 참조를 저장 총알으로 반복 트로프 배열 이동 한 후 : 공 사이

for (UIImageView *ball in ballArray){ 
    //check for collision 
    if (CGRectIntersectsRect(bullet.frame,ball.frame)){ 
     //hit 
    } 
} 

확인 충돌 :

for (UIImageView *ballOne in ballArray){ 
    for (UIImageView *ballTwo in ballArray){ 
     //check for collision 
     if (CGRectIntersectsRect(ballOne.frame,ballTwo.frame) && ballOne != ballTwo){ 
      //hit 
     } 
    } 
} 
+0

고맙습니다. 빠른 응답을위한 Alex입니다.하지만 NSMutablearray에 동시에 4 개의 볼이있는 경우, 볼의 프레임을 가져 오는 방법은 다음과 같습니다. – jamil

+0

볼 사이의 충돌을 확인하는 방법을 예제로 추가했습니다. – Alex

+0

나를 돕기위한 고맙습니다 .i 시도하지만 .. 나를 위해 그 일을하지 않습니다 .bcz 내 총알이 imagemove1.then 그 때 어떻게 createball 함수를 다시 호출 할 수있는 hit.and 또한 동일한 이름으로 새로운 uiimageview을 만듭니다. imageview2 is is 여전히 화면에 .. – jamil