Cocos2d iphone 如何检测用户最后出现的场景?
我正在使用cocos2d,我想知道如何在用户按下按钮从我的pauseLayer场景转到我的设置场景之前检测到他/她最后出现的场景。我需要知道,因为有2种以上的方式可以访问设置场景,所以我需要一个特殊的后退按钮来返回到用户最后出现的场景。另外,我可以有一个返回按钮,它有一个返回到最后一个场景的方法,而不是任何特定的方法。我该怎么做呢?编辑:根据您的代码示例,我建议如下,由于缺乏测试设备,可能无法完全按照编写的方式工作:p 首先,向设置类添加一个名为+(id)nodeFromSource:(bool)bPauseMenu的方法Cocos2d iphone 如何检测用户最后出现的场景?,cocos2d-iphone,back-button,detect,scene,Cocos2d Iphone,Back Button,Detect,Scene,我正在使用cocos2d,我想知道如何在用户按下按钮从我的pauseLayer场景转到我的设置场景之前检测到他/她最后出现的场景。我需要知道,因为有2种以上的方式可以访问设置场景,所以我需要一个特殊的后退按钮来返回到用户最后出现的场景。另外,我可以有一个返回按钮,它有一个返回到最后一个场景的方法,而不是任何特定的方法。我该怎么做呢?编辑:根据您的代码示例,我建议如下,由于缺乏测试设备,可能无法完全按照编写的方式工作:p 首先,向设置类添加一个名为+(id)nodeFromSource:(bool
+(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,是为了有一天你可以用某种引用来替换bool,让你的图层了解它们来自的图层
我希望这一切照常进行。我已经检查了几次,没有发现任何明显的错误…谢谢你的回答,但是我对你的代码有点困惑。在代码的第二部分中,我收到一条警告:“No'-initWithSource:“method found”。我知道我必须创建这个方法/参数,但是我该如何做呢?另外,您在pauseLayer中将cameFromPauseLayer设置为true,在Settings中设置为false是什么意思?在ReplaceSecene中,我是否应该将其置于设置中,以便“后退”按钮返回到pauseLayer?我也收到了警告“'pauseLayer'可能不响应'+sceneWithSource:'。”。很抱歉有这么多的问题,我只是不知道如何设置方法学,我没有带Mac做一个测试示例。您是否可以将pauseLayer类实现粘贴到此处,以便我可以向您展示我在应用程序上下文中的意思?编辑-我将在几分钟后将其上载并发布到此处感谢您的帮助:)