Coco2dx3.2截屏后显示的问题

我写了一个获取当前屏的显示信息, 并将获取到的信息放入到一个Sprite中, 可是效果去和我想的差很多。
还请大家帮忙解答一下。

代码:


bool Test::init()
{
    if (!Layer::init())
    {
        return false;
    }
    mSize = Director::getInstance()->getWinSize();

    auto bg = Sprite::create("bg.jpg");
    bg->setPosition(mSize / 2);
    this->addChild(bg, 1);

    spr = Sprite::create();
    spr->setPosition(mSize / 2);
    this->addChild(spr, 2);

    return true;
}

void Test::onEnterTransitionDidFinish()
{
    RenderTexture* renderTexture = RenderTexture::create(mSize.width, mSize.height, Texture2D::PixelFormat::RGBA8888);

    renderTexture->begin();
    visit();
    renderTexture->end();

    spr->setSpriteFrame(renderTexture->getSprite()->getSpriteFrame());
    spr->setScale(0.9f);
    spr->setColor(Color3B::RED);
    spr->setFlippedY(true);
}

效果:

还请知道原因的朋友指点一下。

cocos不是提供了截屏功能的吗?captureScreen函数

这个方法是截取当前屏幕所显示的所有东西。 如果我只想截取某一个层的呢?

RenderTexture *render = RenderTexture::create(sprite_chess->getContentSize().width, sprite_chess->getContentSize().height,Texture2D::PixelFormat::RGBA8888);
render->beginWithClear(0.0f, 0.0f, 0.0f, 0.0f); //清理一下,你试试
sprite_chess->visit();
render->end();

不可以的。。

那真怪了,留一个你qq