2011-10-23 19 views
0

私はこのシーンを持っていました。シーン、私はこのシーンで自分自身をレイヤーとして追加し、MainMenuレイヤーを追加しました。別のレイヤーからシーンからレイヤーを削除するにはどうすればいいですか? (Cocos2d)

概要層は、プレイヤーに関するいくつかの統計情報を表示し、メニュー層が上部に表示されます。プレイヤーがメニュー内のメニューポイントをクリックすると、別のレイヤーでオーバービューレイヤーを変更します。

しかし、問題がある、私は、メインメニューのクラスからoverviewscene層を除去することができないように、これはさえ可能ですか?

::更新::

私は、この私が試してみました何を、私はいくつかのコードを印刷してみましょうと考えています。この層は、私のそのクラスの権利を追加しましたので、これは私のMainMenuLayer

CCMenuItemFont menu_overview = [CCMenuItemFont itemFromString:@"Overview" target:self.parent selector:@selector(test)]; 

から親は私のoverviewSceneでしょうか? overviewScene

-(void)test { 
// CCScene *scene =[[CCDirector sharedDirector] runningScene]; 
// CCLayer *parentz = (CCLayer) self.parent; 
//[[scene removeChild: cleanup:YES]; 
[[OverviewScene node] removeFromParentAndCleanup:YES]; 
} 

答えて

0

から

「概要」、子として追加表示したい新しいレイヤーと「メインメニュー」層を持つ親のシーンを持っているだろう、これを行うための正しい方法層。こうすることで簡単に次のことができます。

[self removeChild:overviewLayer]; // overviewLayer is a reference to overview layer 
[self addChild:otherLayer tag:kYourTag z:yourZValue]; // otherLayer is the new layer you want added, mind the z index 

階層を維持するために各レイヤーのzインデックスを正しく設定しておくと、問題が解決されます。

+0

こんにちはcode_burgar、私はこれを私が何を試したと信じて、いくつかのコードを印刷させてください。 これは私のMainMenuLayer CCMenuItemFont * menu_overview = [CCMenuItemFont itemFromString: "概要" ターゲット@:self.parentセレクター:@selector(テスト)]からです。 この層が自分のクラスを追加したので、親は私のoverviewSceneでしょうか? overviewScene から - (ボイド)試験 {// CCScene *シーン= [[CCDirector sharedDirector] runningScene]。 // CCLayer * parentz =(CCLayer *)self.parent; // [[シーンremoveChild:クリーンアップ:はい]; [[OverviewScene node] removeFromParentAndCleanup:YES]; } – MartinElvar

+0

申し訳ありません、私はここで新しいです。 – MartinElvar

+0

がコメントにない場合は、代わりに質問を更新する必要があります。 SOは議論の場ではありません。 – LearnCocos2D

関連する問題