0

私はiPhoneプログラミングの初心者で、現在ボールスプリットゲームに取り組んでいます。このゲームでは、弾丸がボール ボールに当たったときに、新しいボールを 2 つ作成したいと考えています。私の弾丸とボールはどちらも uiimageview です。

これが私のコードです:

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

これが私のボール作成機能です..

-(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)];
    }
}

これら2つのuiimageviewを作成した後、弾丸がこれら2つのuiimageviewの1つに当たったときに、別の2つのuiimageviewを作成したいと思います。しかし、これらの新しい uiimageview のフレームを取得する方法に直面している問題...

4

1 に答える 1

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
        }
    }
}
于 2012-05-03T18:04:06.023 に答える