ユーザーが最後になったシーンを検出するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4670561

質問

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

役に立ちましたか?

解決

編集:コードサンプルに基づいて、テスト機器が不足しているために書かれたとおりに機能しない場合があります。p。

まず、[ +(id)nodefromsource:(bool)bpausemenuと呼ばれる設定クラスにメソッドを追加します。

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

bool 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の呼び出しを変更 - (void)設定:( id)送信者へ:

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

そして、設定レイヤーを表示するための他の呼び出しはどこにいても、次のように言ってください。

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

私がそれをnodefromsourceと呼んだ理由は、いつかブールを何らかの参照に置き換え、レイヤーが彼らが来たレイヤーについてのことを知ることができるようにするためです。

これがそのままであることを願っています。私はそれを数回行ってきましたが、明らかなエラーが見えません...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top