2012-12-19 69 views
1

我有一個暫停按鈕,這是一個CCMenuItem,當我觸摸它時,應用程序會進入菜單。我將遊戲場景設置爲菜單場景中的靜態變量,以便當我恢復遊戲時,我可以恢復當前的遊戲。Cocos2d:CCMenu項目在恢復應用程序後沒有響應觸摸

當我按下恢復按鈕時,我重新安排了遊戲場景的更新並使用靜態遊戲場景替換場景。暫停按鈕位於Game Scene擁有的圖層上。

當遊戲繼續時,暫停按鈕在那裏,但不響應我的觸摸。我嘗試使用onEnter來做resumeSchedulerAndActions但沒有。

我想出了一個解決方案,覺得hacky,這是創建我的菜單onEnter並將其刪除onExit

我錯過了什麼嗎?有沒有辦法讓我的菜單再次響應觸摸?

+0

你可以添加一些代碼你的暫停和恢復方法等... –

回答

1

您可以使用CCDirectorpopScene從遊戲場景彈出菜單場景。你可能不需要自行調度。爲此,暫停按鈕必須首先在場景堆棧上推送場景,而不是使用replaceScene

1

你知道什麼是哈克嗎?在一個靜態變量中保留一個場景。如果你替換一個場景,你應該放棄它。 Cocos2d不能處理多個調用以正確替換使用同一對象的替換場景。要麼是這個,要麼覆蓋onEnter而不是調用[super onEnter]導致輸入問題。

如果你想繼續比賽,無論是

  • 不更換現場
  • PUSH/POP其他場景
  • 寫代碼來保存現場的狀態,並恢復它
+0

我認爲你是絕對正確的。我試圖彈出最初的場景,我彈出的只是一個黑屏。我決定尋找另一種方式,而不是弄清楚爲什麼屏幕是黑色的。我將回到試圖弄清楚這一點。順便說一句,我總是推薦你的書作爲開始學習cocos2d的最佳途徑。 – Oscar

相關問題