首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不同类中访问CCMenu的标签

如何在不同类中访问CCMenu的标签
EN

Stack Overflow用户
提问于 2011-12-07 20:12:56
回答 1查看 496关注 0票数 0
代码语言:javascript
复制
    //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的子菜单。如何删除子class2,然后根据我在class2中按下的按钮添加不同的sprite?谢谢你的帮助。可以在class1中使用class2中的标记吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-07 21:03:02

只需执行以下代码即可。

代码语言:javascript
复制
     //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;
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8415136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档