Cocos2d iPhone을 사용하여 몇 가지 게임을 작성했습니다. 이전 게임 모두에서 내가 설정할 때 장면을 바꿀 것입니다 CCMenu 그리고 끝나면 그 장면을 그대로 두십시오. 현재 진행중인 프로젝트에서는 현재 장면에 메뉴가 있어야하며 메뉴를 여러 번 열었다가 닫을 수 있어야합니다. 웬일인지, 나는 이해할 수 없다. removeChild는 메뉴를 제거하지 않을 것이다. removeChild를 사용하여 표시하는 몇 가지 온라인 예제를 보았지만 나에게는 적합하지 않습니다. 아래는 내 메뉴 코드입니다. Start/CreateNewAccount 버튼을 누르면 현재 메뉴가 장면에서 완전히 제거됩니다.Cocos2d iPhone 게임 장면에서 메뉴 제거
이것은 내 init 메소드에 있습니다.
CCMenuItemImage *Start = [CCMenuItemImage itemFromNormalImage:@"MakeLemonade.png" selectedImage:@"MakeLemonadePressed.png"
target:self
selector:@selector(CreateNewAccount:)];
CCMenuItemImage *About = [CCMenuItemImage itemFromNormalImage:@"About.png" selectedImage:@"AboutPressed.png"
target:self
selector:@selector(About:)];
Start.position = ccp(-175, -90);
About.position = ccp(175, -90);
CCMenu *MainMenu = [CCMenu menuWithItems: Start, About, nil];
[Start runAction:[CCFadeIn actionWithDuration:1.0]];
[About runAction:[CCFadeIn actionWithDuration:1.0]];
[self addChild:MainMenu z:6];
}
return self;
}
-(void) BeginMenuLayer {
//this is not working
[self removeChild:MainMenu cleanup:YES];
}
속성으로 설정하지 않아도됩니다. iVar로 충분합니다. 그냥 내가 분명히 할 거라고 생각 했어. – EmilioPelaez
사실입니다. ivar 할당을 수행 할 때 메모리가 누출되지 않도록 여분의 노력이 필요합니다. – cduhn
오, 그게 다야, 네 도움에 감사드립니다 !!! – user597136