Как получить доступ к тегам CCMenu в другом классе - PullRequest
0 голосов
/ 07 декабря 2011
    //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? Спасибо за помощь. Можно ли использовать теги в class2 внутри class1?

1 Ответ

1 голос
/ 07 декабря 2011

Просто пройдите следующий код.


     //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;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...