2011-12-07 4 views
0
//class1 
    - (void)starButtonTapped:(CCMenuItem*)sender { 
     switch(sender.tag) { 
      case 1: NSLog(@"Pressed 1"); 
       class2 *myFood = [[class2 alloc]init]; 
       [self addChild:myFood]; 
       break; 


     } 
    } 

    //class2 
     -(id) init 
     { 
      if((self=[super init])) { 
       //ccmenu 
       CCMenuItem *food1 = [CCMenuItemImage itemFromNormalImage:@"Food0001.png" selectedImage:@"Food0002.png" target:self selector:@selector(food:)]; 
     CCMenuItem *food2 = [CCMenuItemImage itemFromNormalImage:@"Food0003.png" selectedImage:@"Food0004.png" target:self selector:@selector(food:)]; 
       food1.tag = 1; 
food2.tag =2 
     CCMenu *menu1 = [CCMenu menuWithItems:food1,food2, nil]; 
       [self addChild:menu1]; 
      } 
      return self; 
     } 

     -(void)food:(CCMenuItem*)sender{ 
      switch (sender.tag) { 
       case 1: 
        NSLog(@"food1"); 
        //go back to class2 and add food1 sprite 

        break; 
       case 2: 
        NSLog(@"food1"); 
        //go back to class2 and add food2 sprite 

        break; 

       default: 
        break; 
      } 
     } 

ボタンを押した後にclass1で始まり、別のメニューでclass2の子を追加します。 子クラス2を削除して、クラス2で押したボタンに応じて別のスプライトを追加するにはどうすればよいですか?手伝ってくれてありがとう。 class1の中のclass2のタグを使用することは可能ですか?別のクラスのCCMenuのタグにアクセスする方法

答えて

1

次のコードを実行してください。


 //class2 
    -(id) init 
    { 
     if((self=[super init])) { 
      //ccmenu 
      CCMenuItem *food1 = [CCMenuItemImage itemFromNormalImage:@"Food0001.png" selectedImage:@"Food0002.png" target:self selector:@selector(food:)]; 
    CCMenuItem *food2 = [CCMenuItemImage itemFromNormalImage:@"Food0003.png" selectedImage:@"Food0004.png" target:self selector:@selector(food:)]; 
      food1.tag = 1; 
      food2.tag =2 
     // menu1 is instance variable (declared in class2 interface) 
     menu1 = [CCMenu menuWithItems:food1,food2, nil]; 
      [self addChild:menu1]; 
     } 
     return self; 
    } 

    -(void)food:(CCMenuItem*)sender{ 
     switch (sender.tag) { 
      case 1: 
       NSLog(@"food1"); 
       //go back to class2 and add food1 sprite 
       [self removeChild:menu1 cleanup:YES]; 
       CCSprite *spriteFood = [CCSprite spriteWithFile:@"food1.png"]; 
       [self addChild:]; 
       break; 
      case 2: 
       NSLog(@"food2"); 
       //go back to class2 and add food2 sprite 
       [self removeChild:menu1 cleanup:YES]; 
       CCSprite *spriteFood = [CCSprite spriteWithFile:@"food2.png"]; 
       [self addChild:spriteFood]; 
       break; 

      default: 
       break; 
     } 
    } 
関連する問題