0
我正在使用cocos2d,我想知道如何在用戶按下按鈕從我的pauseLayer場景轉到我的設置場景之前檢測用戶最後一次拍攝的場景。我需要知道,因爲有2種方式可以訪問設置場景,所以我需要一個特殊的後退按鈕返回到用戶上一次的任何場景。另外,我可以有1個後退按鈕,它有一個方法可以返回到最後一個場景,而不是任何特定的場景。我會如何去做這件事?如何檢測用戶上次登錄的場景?
我正在使用cocos2d,我想知道如何在用戶按下按鈕從我的pauseLayer場景轉到我的設置場景之前檢測用戶最後一次拍攝的場景。我需要知道,因爲有2種方式可以訪問設置場景,所以我需要一個特殊的後退按鈕返回到用戶上一次的任何場景。另外,我可以有1個後退按鈕,它有一個方法可以返回到最後一個場景,而不是任何特定的場景。我會如何去做這件事?如何檢測用戶上次登錄的場景?
編輯:根據您的代碼示例,我建議以下內容,由於缺少測試設備,可能無法正常工作:P。
首先,在Settings類中添加一個名爲+(id)nodeFromSource:(bool)bPauseMenu的方法。
+(id)nodeFromSource:(bool)bPauseMenu
{
if((self = [self node])
{
m_bPauseMenu = bPauseMenu;
}
return self;
}
Add 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調用 - (空)設置:(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,並讓你的圖層知道它們來自的圖層。
我希望這是按原樣工作的。我已經過了幾次,不能看到任何明顯的錯誤...
感謝您的答案,但我有點困惑你的代碼。在代碼的第二部分,我收到一條警告,提示「否」-initWithSource:「找到方法」。我知道我必須製作這個方法/參數,但我該怎麼做? 另外,通過在pauseLayer中將cameFromPauseLayer設置爲true並且在Settings中設置爲false,您是什麼意思? 在替換場景,我應該把它放在設置,所以後退按鈕回到pauseLayer?而且我也收到警告「'pauseLayer'可能不會響應'+ sceneWithSource:'。 對不起,我只是主要不知道如何設置方法 – Joethemonkey101 2011-01-12 17:18:33