私はCocos2d-xを使ってC++プロジェクトを開始していますが、本当に問題はありません。私のAppDelegateがIntroMenuオブジェクトを作成する場所です。ここでAppDelegateをインスタンス化するクラスのインスタンス変数として私のAppDelegateを定義する方法は?
は私IntroMenuが定義されている方法です...私は私のIntroMenuクラスのインスタンス変数としてAppDelegateを定義したいが、私はそれを行うために管理していない:
IntroMenu.h
class IntroMenu : public cocos2d::CCLayerColor
{
public:
AppDelegate* _app;
//etc...
}
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
はnullポインタです。
IntroMenuとその変数_app
を正しくインスタンス化するにはどうすればよいですか?
ありがとうございます!
あなたはポインタからCCScene 'にIntroMenu''へのポインタを取得できますか'? 'IntroMenu'は' CCScene'から継承していますか?私はCocos2dの経験はありませんが、 'IntroMenu'クラスを指す' introScene'の_child_を取得する必要があると思われます。 'CCScene'には' _app'メンバーがありません。 –
[[UIApplication sharedApplication] delegate]のように、UIKitに似た機能が必要です。以前のC++プログラマとして、あなたのパブリックメンバーの変数のアプローチは私に違反を感じさせます。 – LearnCocos2D