【已解决】场景切换问题

使用Director::getInstance()->pushScene(transition)函数是可以具有动画效果的,但是使用popScene()时,不会自动使用使用相反的动画,而且不能加上动画效果
有没有什么好的解决方案呢。
问题是 如何在使用popScene()时,具有场景切换效果

写了个,丑了点,将就着用吧。

需要改下引擎。也可以重载也可以做成默认参数但是记得判断callback是否为nullptr

void Director::popScene(const std::function& callback)
{
    CCASSERT(_runningScene != nullptr, "running scene should not null");

    _scenesStack.popBack();
    ssize_t c = _scenesStack.size();

    if (c == 0)
    {
        end();
    }
    else
    {
        _sendCleanupToScene = true;
        _nextScene = _scenesStack.at(c - 1);
        if(callback)
            callback(_nextScene);
    }
}
```


使用方法:
    auto callback = ](Scene*& scene){scene = TransitionJumpZoom::create(1.0f, scene);};
    Director::getInstance()->popScene(callback);
```

已验证,可以顺利运行,代码也很规范(标准)
允许我再提个问题
现在传递的参数是函数指针,感觉使用上不是很方便,可不可以传递要使用的动画对象或类(表述可能有点烂)
比如我可以传递进TransitionJumpZoom这个类名,再利用类名创建对象。
额,看不懂就忽略吧…

TransitionScene的子类参数比较多~传参这个事情,要么里面做,要么外面做~

里面确实不好做,传参类型众多~

外面做的话没想好更方便的方式~

C++没有反射,也不太方便~

我网上查到了可以使用反射实现,但是没想到C++没有这个功能
不馈是版主