在cocos2dx中的pushScene()中应用截屏函数
发布时间:2020-12-14 20:10:36 所属栏目:百科 来源:网络整理
导读:在cocos2dx中,pushScene创建一个场景,而场景的背景是黑色的,目前我还没有找到合适的方法使其透明,所以在网上找到一个方法替代,就是截屏 先上代码: void ControlLayer::gameOverBtn(Ref* pSender){//获取屏幕大小auto visibleSize=Director::getInstanc
在cocos2dx中,pushScene创建一个场景,而场景的背景是黑色的,目前我还没有找到合适的方法使其透明,所以在网上找到一个方法替代,就是截屏 先上代码: void ControlLayer::gameOverBtn(Ref* pSender) { //获取屏幕大小 auto visibleSize=Director::getInstance()->getVisibleSize(); //创建一个RenderTexture对象,用于保存截取的图片 RenderTexture* texture = RenderTexture::create(visibleSize.width,visibleSize.height); //开始截屏 texture->begin(); //得到当前正在运行的场景并截取图片,截取图片的范围是visibleSize.width,visibleSize.height Director::getInstance()->getRunningScene()->visit(); texture->end(); //把截取的图片传递给要弹出的场景内 Director::getInstance()->pushScene(GameOverScene::createScene(texture)); } TenderTexture 命名空间为cocos2d:: 包含头文件#include“cocos2d.h” 然后再对应的场景中创建如下代码: GameOverScene是一个继承Layer的自定义类 类中包含函数: static cocos2d::Scene * createScene(cocos2d::RenderTexture * spr); 这个是函数的实现: Scene * GameOverScene::createScene(RenderTexture *spr) { Scene * scene = Scene::create(); GameOverScene * layer = GameOverScene::create(); scene->addChild(layer,1); auto visibleSize = Director::getInstance()->getVisibleSize(); auto s = Sprite::createWithTexture(spr->getSprite()->getTexture()); s->setPosition(visibleSize / 2); s->setScaleY(-1); s->setOpacity(50); scene->addChild(s,1); return scene; } 这样就可以在新场景中看到原场景的游戏内容了: 如下图所示 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |