Cocos2d-x를 사용하여 C++ 프로젝트를 시작하고 있는데, AppDelegate가 IntroMenu 객체를 생성하는 위치는 중요하지 않습니다.내 AppDelegate를 인스턴스화하는 클래스의 인스턴스 변수로 정의하는 방법은 무엇입니까?
IntroMenu.h
class IntroMenu : public cocos2d::CCLayerColor
{
public:
AppDelegate* _app;
//etc...
}
을 : 여기
내 IntroMenu 정의하는 방법입니다 ... 내 IntroMenu 클래스의 인스턴스 변수로 AppDelegate에 정의하려는하지만 난 그것을 할 관리하지 않는
IntroMenu.m
CCScene* IntroMenu::scene()
{
CCScene *scene = CCScene::node();
IntroMenu *layer = IntroMenu::node();
scene->addChild(layer);
return scene;
}
내가 IntroMenu의 FR을 실체화 내 AppDelegate에를 톰, 나는 AppDelegate에이 같이 진행 :
introScene = IntroMenu::scene();
((IntroMenu*)introScene)->_app = this;
_app
이 IntroMenu의 (유형 AppDelegate에의) 공용 변수입니다.
나중에 다른 방법으로 AppDelegate에서 사용하려는 경우 _app
이 널 포인터입니다.
인트로 메뉴 및 해당 변수 _app
을 올바르게 인스턴스화하는 방법은 무엇입니까?
감사합니다.
가 어떻게 CCScene'에 대한 포인터에서 IntroMenu''에 대한 포인터를 얻을 수 있습니다 '? 'IntroMenu'는'CCScene'에서 상속 받았습니까? Cocos2d에 대한 경험이 없지만'IntroMenu' 클래스를 가리키는'introScene'의 _child_를 가져와야합니다. 왜냐하면'CCScene'은'_app' 멤버가 없기 때문입니다. –
[[UIApplication sharedApplication] delegate]에서와 같이 UIKit에있는 것과 유사한 기능이 있어야합니다. 전직 C++ 프로그래머로서 공공 회원 변수 접근법은 저를 기분을 상하게합니다. – LearnCocos2D