cocos2d-x中截屏的方法、保存图片,以及使用截屏作为背景实例

以一个游戏做实例来说明截屏及其使用方法

给菜单按钮设置回调函数,在回调函数中进行截图操作



void GameScene:: MenuCall(Ref* ref){

    auto visible = Director::getInstance()->getVisibleSize();
    //定义一个屏幕大小的渲染纹理
    RenderTexture *sqr = RenderTexture ::create(visible.width, visible.height);
    //渲染纹理开始捕捉
    sqr->begin();
//    当前场景参与绘制
    this->getParent()->visit();
//    捕捉结束
    sqr->end();
//    保存为png图片
//    sqr->saveToFile("screenshoot.png", kCCImageFormatPNG);
    保存为jpg图片
//    sqr->saveToFile("screenshoot.jpg", kCCImageFormatJPEG);
    Director::getInstance()->pushScene(GamePause::createScene(sqr)); //把渲染纹理的指针传值下一个场景
    
}

在下一个场景中,用截图做背景



Scene* GamePause::createScene(RenderTexture *sqr){
    
    auto scene = Scene::create();
    GamePause *layer = GamePause::create();
    scene->addChild(layer,1);
    
    auto back_sqr = Sprite::createWithTexture(sqr->getSprite()->getTexture());//获取截图
    back_sqr->setPosition(VISIBLESIZE/2);  //设置位置
    back_sqr->setFlippedY(true);    //设置翻转
    back_sqr->setColor(Color3B::GRAY);
    scene->addChild(back_sqr);
    
    auto back_menu = Sprite::createWithSpriteFrameName("menu_bg.png");  //这是中间菜单框的图片
    back_menu->setPosition(VISIBLESIZE/2);
    scene->addChild(back_menu);
    return scene;
};



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值