内のオブジェクトを取得するには子クラスからgetChildByTagを使用して、私は、画面表示を構成するいくつかの子オブジェクトを持っているcocos2dのシーンを持っています。これらの子オブジェクトのいくつかは、ディスプレイが更新されるように、互いに通信する必要があります。Cocos2d - シーン
シーングラフのオブジェクトへの参照を渡すのではなく、すべてのcocos2dノードにタグを付け、タグ値を渡してから、シーンオブジェクトが必要なときは常にディレクタを使ってオブジェクトを取得しますタグ。
これは私の周りに飛んでオブジェクトへの参照をたくさん持っていないことを意味し、私の考えでは、それはクリーンでオブジェクトが、彼らはすべきではない時に保持された状態でメモリの問題を引き起こす可能性が低いだろうということでした。
CCNode* node = [[[[CCDirector sharedDirector] runningScene] getChildByTag:TAG_MY_LAYER] getChildByTag:TAG_MY_OBJECT];
if (node != nil){
NSAssert([node isKindOfClass:[myObject class]], @"node is not a myObject");
myObject* mo = (myObject*)node;
...
other stuff
....
問題::シーンが変化して初期化されている場合、このメソッドは動作しません
は、私は特定のノードを取得するには、次のコードを使用します。ランニングシーンへの呼び出しは、新しいシーンではなく、トランジションを返します。 - onEnterTransitionDidFinishを待つなら、それでもそれは動作しません。トランジションが削除され、runningSceneが新しいシーンになる前に、少し後に(おそらく古いシーンが破壊される)待たなければならないかのようです。
は、それは私がからgetChildByTagを呼び出すことができ、それは関係なく、シーンの移行の状態の、私のタグ付けされたオブジェクトを取得しますシーングラフの一部への参照を取得することはできますか?