2011-07-13 3 views
0

私は、シーンに複数のレイヤーがあるときにレイヤーを設定し、そのシーンを取得するためにシーンのシングルトンを使用してレイヤーを設定し、そのプロパティを呼び出す必要があるという本を読んだことがあります。シングルトンまたはCCDirector経由のシーンにアクセスしますか?レイヤーのやりとりに関する質問

しかし、私は[[CCDirector sharedDirector]runningScene]を使うことができ、シングルトンを使わずにプロパティにアクセスできるようにシーンを取得できると思いました。これは良い方法ですか?

また、私はCocos2Dのコンセプトを読んだことがあります。そのサイトでは、Sceneにはレイヤーが含まれているため、シーンに動作などが与えられています。これは、お互いに話したり、場面を乱さずに自分のことをできるように、私は自分のレイヤーを設定する必要があることを意味しますか? (私がCCDirectorと呼ぶはずのシーンを変える以外のことですが)しかし、自分のシーンを使ってレイヤーを操作すると、より良い方法になると思いますか?シーンにはレイヤーの参照がすべてあるため、レイヤーを互いに話すよりもプログラムする方が簡単です...

ありがとう!

答えて

0

あなたの質問はかなり混乱しています。シーンには複数の画層があります。開発中の私の現在のゲームは、様々な方法で実行するいくつかのレイヤーを持つ1つのシーン(メインゲーム中)を持っています。レイヤーを制御できるように別のクラスが必要な場合は、これを行うさまざまな方法があります。

  • はポインタを格納し、層
  • を作成したクラスからそれを設定するためのプロパティを持って外クラスのメソッドへのポインタを渡し、それ自身のCCLayerサブクラスの層を持っており、それを作りますシングルトン
  • 共有する必要があるすべてのレイヤーへのポインタを格納する小さなシングルトンクラスを用意してください。
  • または任意の他、あなたが
0

を考えるあなたは(魔女も同じシーン内の別の層を意味する)別のクラスからのシーンを実行している中で層にアクセスしたい場合は、[[CCDirector sharedDirector] runningScene]取得するために使用することができますシーンへの参照、次にgetChildByTag:特定のレイヤーへの参照を取得します。

同じシーン内のレイヤーにアクセスする場合は、initメソッドではないレイヤーのonEnterメソッドでこれらの呼び出しを行う方が適切です。

関連する問題