CCLayerビューとUIViewの両方を持つ小さなアプリケーションがあります。それはうまく動作します。私は、Cocos2d CCLayerがメッセージを受信できるように、レイヤの参照にメッセージを送信しようとしています。これは簡単に思えますし、うまくいくと思います。私はIVARとして「ココス」と呼ばれるCCLayerポインタを作成し、ココスビューを作成した後、このように設定します。UIViewからCCLayerへのポインタ
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];
CCScene*tempscene=[[CCDirector sharedDirector] runningScene];
cocos=[tempscene.children objectAtIndex:0];
これはただ一つのシーンと層とのシンプルで小さなテストアプリケーションであるため、それが動作するはずです。しかし、iVar cocos
はHelloWorldLayer
のパブリックメソッドのいずれにも応答しません。どんな考え?
更新:コードを少しだけ並べ替えて作業するようにしました。それは前の方法この方法を働いていない理由はわからない:
CCScene*tempscene=[HelloWorldLayer scene];
[[CCDirector sharedDirector] runWithScene: tempscene];
cocos=[tempscene.children objectAtIndex:0];
いつでも*「runningscene」が利用可能になったら? – johnbakers
runWithSceneを呼び出すと、実際にシーンを開始するまで、実行シーンとしてシーンがない限り、runningSceneがアクティブになった後であると思います。 –
私はrunWithSceneの後にコードを書きましたが、明らかにrunningsceneは何もしませんでした – johnbakers