cocos2d-3.0 关于使用截屏暂停游戏的问题

#include "UILayer.h"

UILayer::UILayer(void)
{
}

UILayer::~UILayer(void)
{
}

bool UILayer::init()
{
      if(!Layer::init())
        return false;

    auto size = Director::getInstance()->getWinSize();

    //添加游戏暂停和开始的开关菜单
    auto toggle1 = MenuItemImage::create();
    toggle1->setNormalSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("pause_button.png"));
    auto toggle2 = MenuItemImage::create();
    toggle2->setNormalSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("resume_button.png"));
    auto menuToggle = MenuItemToggle::createWithCallback(CC_CALLBACK_1(UILayer::menuCallback,this), toggle1,toggle2,NULL);
    //刚开始设置选择的index是0,如果点击了暂停设置index为1,toggle中的index是从0开始的,第一个添加进去的
    //item的index为0
    menuToggle->setSelectedIndex(0);
    auto menu = Menu::create(menuToggle,NULL);
    menu->setPosition(Point(size.width*0.95,size.height*0.97));
    this->addChild(menu);
    
    return true;
}



void UILayer::menuCallback(Ref * ref)
{
    auto toggle = (MenuItemToggle *)ref;
    //根据用户选择的不同做不同的处理,刚开始我们设置的时候是0,一点击系统就进行了切换,将index设置为了1
    if(toggle->getSelectedIndex() == 1)
    {
                //截取当前场景的图片并且保存
        auto size = Director::getInstance()->getWinSize();
        //RenderTexture是一个纹理渲染类,我们需要把要渲染的当前场景放进去,这是初始化它的大小
         auto render = RenderTexture::create(size.width,size.height);
        //开始获取内容
        render->begin();
        //是用节点的visit方法加入到渲染中
        Director::getInstance()->getRunningScene()->visit();
        //结束
        render->end();

        auto index = UserDefault::getInstance()->getIntegerForKey("index", 0);
        UserDefault::getInstance()->setIntegerForKey("index", index+1);
        auto str = __String::createWithFormat("pause%d.png", index);

        //每次截屏都会产生不同名称的图片,要把图片删掉
       if(index != 0)
        {
            auto str = __String::createWithFormat("pause%d.png",index-1);
            auto fullPath = FileUtils::getInstance()->getWritablePath() + str->getCString();
            if(FileUtils::getInstance()->isFileExist(fullPath))
            {
                remove(fullPath.c_str());
            }
        }

        //保存图片为PNG格式,当我们想要获取这个文件的时候使用
        FileUtils::getInstance()->getWritablePath() + "pause.png";//,通过这个方法就可以取得我们保存的图片啦
        render->saveToFile(str->getCString(),Image::Format::PNG);

        //对声音的处理
        // SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
        //3.0截屏需要在截完屏的下一帧才能处理RenderTexture,这点要注意
        auto _schedule = this->getScheduler();
        auto replaceScene = ](float tm)
        {
            //最后切换场景
            Director::getInstance()->pushScene(Pause::createScene());
        };
         _schedule->schedule(replaceScene, this, 0.0f,0,0.0f, false, "screenshot");
         toggle->setSelectedIndex(0);

    }

}


```


#include "Pause.h"
#include "MainGame.h"
Pause::Pause(void)
{
}

Pause::~Pause(void)
{
}

Scene * Pause::createScene()
{
    auto scene = Scene::create();
    auto layer = Pause::create();
    scene->addChild(layer);

    return scene;
}

bool Pause::init()
{
    if(!Layer::init())
        return false;

    auto size = Director::getInstance()->getWinSize();
    
    auto index = UserDefault::getInstance()->getIntegerForKey("index");
    auto str = __String::createWithFormat("pause%d.png", index-1);
    CCFileUtils::sharedFileUtils()->getWritablePath();//提供了一个可以存储的路径
    auto fullPath = FileUtils::getInstance()->getWritablePath() + str->getCString();
    //这里把截屏的那张图片做为背景图片
    auto background = Sprite::create(fullPath);
    background->setPosition(Point(size.width/2, size.height/2));
    this->addChild(background, 0);

    //添加恢复游戏的按钮
    auto resume = MenuItemImage::create();
    resume->setNormalSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("resume_botton.png"));
    //auto resumeToggleItem = MenuItemToggle::createWithCallback(CC_CALLBACK_1(Pause::backtogame, this), resume,NULL);
    auto callback = ](Ref * ref)
    {
        //弹出保存的场景
        Director::getInstance()->popScene();
    };
    resume->setCallback(callback);
    
    auto menu = Menu::create(resume, NULL);
    menu->setPosition(Point(size.width*0.95, size.height*0.97));
    this->addChild(menu,10000);
    

    //loading的动画效果
    Vector vector;
    for(int i=0; i<7; i++)
    {
        auto str = __String::createWithFormat("loading_%d.png", i+1);
        auto spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(str->getCString());
        vector.pushBack(spriteFrame);
    }
    auto animation = Animation::createWithSpriteFrames(vector, 0.2f, -1);
    auto animate = Animate::create(animation);
    //设置用来执行动画的loading图片
    auto loading = Sprite::createWithSpriteFrameName("loading_1.png");
    loading->setPosition(Point(size.width*0.5,size.height*0.5));
    this->addChild(loading);

    loading->runAction(animate);

    return true;
}



```



我按照这种方法添加,游戏是可以暂停了, 那个runAction的动作也运行了,但就是不能返回游戏,在那个截屏的新场景里, resume的按钮毫无反应,我尝试把resume的位置改变,但游戏里其位置没有变, 是不是我压根没有添加到resume的按钮上去?求大神指导