在cocos2dx中的pushScene()中应用截屏函数

在cocos2dx中的pushScene()中应用截屏函数,第1张

概述在cocos2dx中,pushScene创建一个场景,而场景的背景是黑色的,目前我还没有找到合适的方法使其透明,所以在网上找到一个方法替代,就是截屏 先上代码: void ControlLayer::gameOverBtn(Ref* pSender){ //获取屏幕大小 auto visibleSize=Director::getInstance()->getVisibleSize();

在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();	//把截取的图片传递给要d出的场景内	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;}

这样就可以在新场景中看到原场景的游戏内容了:

如下图所示

总结

以上是内存溢出为你收集整理的在cocos2dx中的pushScene()中应用截屏函数全部内容,希望文章能够帮你解决在cocos2dx中的pushScene()中应用截屏函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存