2010-02-14 3 views
1

У меня есть птицы, летящие в рамке в моей игре, но я могу только заставить их летать в двух разных направлениях. Если есть 2 птицы, они идут в двух разных направлениях. Если есть 3 птицы, 2 из них идут в одном направлении, а другой - в другом направлении. Я хочу, чтобы птицы случайным образом шли в четырех разных направлениях. Вверх направо, вправо, влево и влево, вот мой код.Вопрос CGPointMake для iphone?

-(void) AddBirdIntoArray: (int) BirdCount { 
for(int i=0; i< BirdCount ; i++){ 


    if(appDelegate.enemyselect == 0){ 

    imgBird[i]=[[UIImageView alloc] initWithImage:firstImage]; 
    [imgBird[i] setAnimationImages:birdArrayConstant]; 
    } 

    else if(appDelegate.enemyselect == 1){ 

    imgBird[i]=[[UIImageView alloc] initWithImage:firstImagegreenorange]; 
    [imgBird[i] setAnimationImages:birdArrayConstant3]; 
    } 

    else if(appDelegate.enemyselect == 2){ 
    imgBird[i]=[[UIImageView alloc] initWithImage:firstImageblueyellow]; 
    [imgBird[i] setAnimationImages:birdArrayConstant4]; 
    } 

    else if(appDelegate.enemyselect == 3){ 
    imgBird[i]=[[UIImageView alloc] initWithImage:firstImagebluewhite]; 
    [imgBird[i] setAnimationImages:birdArrayConstant2]; 
    } 

    else if(appDelegate.enemyselect == 4){ 
    imgBird[i]=[[UIImageView alloc] initWithImage:firstImagepinkpurple]; 
    [imgBird[i] setAnimationImages:birdArrayConstant5]; 
    } 

    else if(appDelegate.enemyselect == 5){ 
    imgBird[i]=[[UIImageView alloc] initWithImage:firstImagebluegreen]; 
    [imgBird[i] setAnimationImages:birdArrayConstant6]; 
    } 

    else if(appDelegate.enemyselect == 6){ 
    imgBird[i]=[[UIImageView alloc] initWithImage:firstImageorangewhite]; 
    [imgBird[i] setAnimationImages:birdArrayConstant7]; 
    } 

    else if(appDelegate.enemyselect == 7){ 
    imgBird[i]=[[UIImageView alloc] initWithImage:firstImageredblue]; 
    [imgBird[i] setAnimationImages:birdArrayConstant8]; 
    } 



    [imgBird[i] setAnimationDuration:1.0]; 
    [imgBird[i] startAnimating]; 

    if(i%2==0){ 
    pos[i]=CGPointMake(-1,1); 
    } 

    else{ 
    pos[i]=CGPointMake(1,-1); 
    } 

    xvalue = arc4random()%250; 
    yvalue = arc4random()%250; 
    CGRect TempRect = CGRectMake(xvalue ,yvalue , 22 , 22); 
    imgBird[i].frame = TempRect; 
    [birdImageViewArray addObject:imgBird[i]]; 
    [self addSubview:imgBird[i]]; 
    [imgBird[i] release]; 
    } 




[birdArray release]; 
} 

ответ

1

Я думаю, что это ваши два направления векторов:

pos[i]=CGPointMake(-1,1); 
pos[i]=CGPointMake(1,-1); 

Другие два направления:

pos[i]=CGPointMake(-1,-1); 
pos[i]=CGPointMake(1,1); 

И, конечно же, а не если/другое основано на i%2 , вы должны использовать переключатель на основе:

arc4random()%4 
+0

не могли бы вы быть более конкретными? Как написать инструкцию if для arc4random()% 4? – NextRev

+0

Я понял, спасибо за ваш ответ, хотя, определенно помог – NextRev