Cocos2d removeChild не работает - PullRequest
       4

Cocos2d removeChild не работает

3 голосов
/ 11 декабря 2011
// on "init" you need to initialize your instance
-(id) init
{
    // always call "super" init
    // Apple recommends to re-assign "self" with the "super" return value
    if( (self=[super init])) {
        buttonPressed = NO;

        CCMenuItem *myMenuItem = [CCMenuItemImage itemFromNormalImage:@"Icon-72.png" selectedImage:@"Icon-Small.png"target:self selector:@selector(menuSelector:)];
        CCMenu *myMenu = [CCMenu menuWithItems:myMenuItem, nil];
        myMenu.position = ccp(50, 50);
        // add the label as a child to this Layer
        [self addChild: myMenu];
    }
    return self;
}

-(void)menuSelector:(id)sender{
    CCSprite *mySprite = [CCSprite spriteWithFile:@"Icon.png"];
    mySprite.position = ccp(100, 100);
    if (!buttonPressed) {
        buttonPressed = YES;
        [self addChild:mySprite];

    }
    else{
        [self removeChild:mySprite cleanup:YES];
        buttonPressed = NO;
    }

}

Почему removeChild: mySprite не работает?mySprite все еще там после того, как я нажал кнопку (myMenuItem) во второй раз.Пожалуйста, помогите мне.Благодаря.

1 Ответ

2 голосов
/ 11 декабря 2011

Каждый раз, когда вы нажимаете кнопку, вы создаете новый экземпляр спрайта.Возможно, вам лучше создать и добавить его как переменную класса, чтобы вы могли обращаться к нему во всех методах, а затем просто включить или отключить его видимость по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...