2011-12-06 10 views
3

私はそうのようなメニュー画面の階層構造を持っている:cocos2dのレイヤー間の移行方法は?

Scene 
    | 
Background Layer 
    |   | 
Main Menu Settings Menu 

私は背景レイヤーを移動することなく、設定メニューにメインメニューから移行したいです。シーン間の遷移方法については多くの文書がありますが、レイヤ間では何も見つかりません。メインメニューと設定メニューの両方のレイヤーは透明な背景のフルスクリーンですが、背景を動かさずにそれらの間をスライドしたいだけです。

シンプルな問題ですが、1時間以上ウェブを検索してしまったのです。

+0

これは、意図したとおりのシーンではなぜですか?物事を必要以上に複雑にすることはありません。また、状態を永続させる(追加コードなしで)ことが重要な場合は、プッシュポップシーンを調べることもできます。 – LearnCocos2D

+0

私が見たことから、私は永続的な背景を持つことはできません。私はバックグラウンドを置くことについて話しています、アニメーションはありません(たとえ新しいシーンが同じバックグラウンドであっても、移動したくはありません)。 – rnystrom

+0

トランジションを使用しない場合、背景は移動しません。レイヤーをトランジションするには、両方のレイヤーをロードし、CCMoveToのようなアクションを各レイヤーで同時に実行して、イン/アウトを移動するだけです。 – LearnCocos2D

答えて

2

メインメニューが子ノードであるノードを持つ。必要な方向に応じて+ screenWidthまたは-screenWidthのオフセットでこのノードに設定メニューを追加します。次に、ノードを画面の反対側に移動する(または逆方向に進む場合は画面外に移動する)CCMoveToのシーケンスを作成し、次にCCCallFuncがメイン・ノード・レイヤーをメイン・ノードから除去する関数を呼び出します。これは、垂直遷移に対しても同様に機能します(screenHeightを使用し、ノードを垂直方向に移動するだけです)。

+0

私は家に帰るとこれで遊びます。 「ノード」と言うと、単にCCNodeまたはCCLayerのノードを使用すると言っていますか? – rnystrom

+1

CCNode( 'CCNode * container = [CCNode node];)を使用してください。おそらく新しいものではなくヘッダにポインタを設定しています。 – jrtc27

+0

あなたはそれを釘付けにしました。ノードにメニューを入れ、自分が望むようにシーン内外にアニメートするカスタムメニューマネージャを設定します。ありがとう! – rnystrom

関連する問題