2010-02-14 44 views
1

在我的遊戲中,我有一隻鳥在一個框架內飛行,但我只能讓它們飛向兩個不同的方向。如果有2只鳥,它們會朝兩個不同的方向前進。如果有3只鳥,其中2只朝一個方向,另一隻朝不同方向。我想讓這些鳥隨機進入四個不同的方向。右上,左下,左下,這是我的代碼。CGPoint讓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

你會介意更具體嗎?我如何寫arc4random()%4的if語句? – NextRev 2010-02-14 07:01:20

+0

我想通了,謝謝你的回答,但絕對有幫助 – NextRev 2010-02-14 07:12:26