2011-01-12 17 views
0

私はcocos2dを使用しています。私は、自分がpauseLayerシーンから自分の設定シーンに行くためにボタンを押す前に、どのシーンを最後に検出したかを知りたいと思います。設定シーンにアクセスするには2つ以上の方法があるので、私は知る必要があるので、ユーザーが最後に行ったシーンに戻るには特別な戻るボタンが必要です。また、私は最後のシーンに戻る方法を持っている1つの戻るボタンを持つことができますが、特定のものではありません。これをどうやってやりますか?ユーザーはどのシーンを最後に検出しましたか?

答えて

0

編集:あなたのコードサンプルに基づいて、テスト機器が不足しているため、正確には動作しない可能性がある以下のことを提案します。

まず、+(id)nodeFromSource:(bool)bPauseMenuという設定クラスにメソッドを追加します。

+(id)nodeFromSource:(bool)bPauseMenu 
{ 
    if((self = [self node]) 
    { 
    m_bPauseMenu = bPauseMenu; 
    } 
    return self; 
} 

ブールを追加するm_bPauseMenu;クラス定義の中で。次のコードを実装、設定で、背中のボタンに割り当てる機能で

//for example... 
-(void)backButtonPressed:(id)sender 
{ 
    if(m_bPauseMenu) 
    { 
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[pauseLayer node]]]; 
    } 
    else 
    { 
    //trigger a replaceScene back to the other menu here 
    //(MyOtherLayer is the classname of your non-pause-menu layer that you came from... 
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[MyOtherLayer node]]]; 
    } 
} 

変更pauseLayerでコールを - (無効)の設定:(ID)送信者へ:

[[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[Settings nodeFromSource:true]]]; 

でもどこでもセッティング層を示すために、あなたの他の呼び出しは、それが言うにし、次のとおりです。

[[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[Settings nodeFromSource:false]]]; 

理由私はそれはnodeFromSourceと呼ばれています。ある日、boolをある種の参照で置き換えて、レイヤーが出てくるレイヤーについて知ることができます。

私はこれがそのまま動作することを願っています。私はその上に数回してきたし、任意の明らかなエラーを見ることができない...答えを

+0

おかげで、私はあなたのコードについて少し困惑しています。コードの2番目の部分では、「No -initWithSource: 'メソッドが見つかりました」という警告が表示されます。私はこのメソッド/パラメータを作らなければならないことを知っていますが、どうすればいいですか? また、pauseLayerでcameFromPauseLayerをtrueに設定し、設定でfalseを設定するとどういう意味ですか? replaceSceneでは、これを[設定]に入れて、戻るボタンをpauseLayerに戻しますか?そしてまた、私は警告「『pauseLayer』を取得していますが 『+ sceneWithSource:』に応答しないことがあります。申し訳ありませんが の質問の質量のために、私は主に – Joethemonkey101

+0

謝罪をする方法を設定する方法を得ていないよ、私は持っていません。テストしたサンプルを私のMacに送ってください。pauseLayerクラスの実装をここにペーストして、アプリのコンテキストで何を意味するのかを教えてください。 – badgerr

+0

EDIT - アップロードして数分後に投稿します – Joethemonkey101

関連する問題