cocos2d-x 截取屏幕可见区域
2013-12-19 11:49
337 查看
在游戏中,我们经常需要分享到社交网络的功能。分享时,我们时常会需要用到截屏的功能。目前网上的文章虽然很多,但是都是截取的
设计分辨率(DesignResolutionSize)大小的屏幕,而这个并不是最佳选择,因为它不符合当前设备的宽高比例。
下面的这个函数,可以截取屏幕可见范围的内容,生成一个CCImage对象。
CCImage* screenshotWithStartNode(CCNode *startNode)
{
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint visibleOrigin = CCDirector::sharedDirector()->getVisibleOrigin();
CCDirector::sharedDirector()->setNextDeltaTimeZero(true);
CCRenderTexture* rtx = CCRenderTexture::create(winSize.width, winSize.height);
rtx->begin();
startNode->visit();
rtx->end();
if (0 == visibleOrigin.x)
return rtx->newCCImage();
CCRect finalRect = CCRectMake(visibleOrigin.x, visibleOrigin.y, visibleSize.width, visibleSize.height);
CCSprite *sprite = CCSprite::createWithTexture(rtx->getSprite()->getTexture(), finalRect);
sprite->setAnchorPoint(CCPoint(0, 0));
sprite->setFlipY(true);
CCRenderTexture *finalRtx = CCRenderTexture::create(visibleSize.width, visibleSize.height);
finalRtx->begin();
sprite->visit();
finalRtx->end();
return finalRtx->newCCImage();
}
设计分辨率(DesignResolutionSize)大小的屏幕,而这个并不是最佳选择,因为它不符合当前设备的宽高比例。
下面的这个函数,可以截取屏幕可见范围的内容,生成一个CCImage对象。
CCImage* screenshotWithStartNode(CCNode *startNode)
{
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint visibleOrigin = CCDirector::sharedDirector()->getVisibleOrigin();
CCDirector::sharedDirector()->setNextDeltaTimeZero(true);
CCRenderTexture* rtx = CCRenderTexture::create(winSize.width, winSize.height);
rtx->begin();
startNode->visit();
rtx->end();
if (0 == visibleOrigin.x)
return rtx->newCCImage();
CCRect finalRect = CCRectMake(visibleOrigin.x, visibleOrigin.y, visibleSize.width, visibleSize.height);
CCSprite *sprite = CCSprite::createWithTexture(rtx->getSprite()->getTexture(), finalRect);
sprite->setAnchorPoint(CCPoint(0, 0));
sprite->setFlipY(true);
CCRenderTexture *finalRtx = CCRenderTexture::create(visibleSize.width, visibleSize.height);
finalRtx->begin();
sprite->visit();
finalRtx->end();
return finalRtx->newCCImage();
}
相关文章推荐
- Unity--截取屏幕任意区域
- js获取网页屏幕可见区域高度
- Ext 窗体(window)创建时头部工具栏超出屏幕可见区域无法拖动解决
- ScreenBase实现屏幕任意区域的截取
- js获取网页屏幕可见区域高度
- Unity--截取屏幕任意区域
- js获取屏幕尺寸、网页可见区域、网页正文、屏幕分辨率
- 获取页面可见区域,屏幕区域的尺寸
- js获取网页可见区域、正文以及屏幕分辨率的高度
- js获取网页屏幕可见区域的高度
- 用纯C#实现截取屏幕指定区域
- 截屏/截取屏幕指定区域
- 实用的Javascript获取网页屏幕可见区域高度
- js获取网页可见区域、正文以及屏幕分辨率的高度
- JavaScript——获取网页屏幕可见区域高度
- js获取网页屏幕可见区域高度
- 用纯C#实现截取屏幕指定区域
- ScreenBase实现屏幕任意区域的截取
- js获取网页屏幕可见区域高度
- cocos2d-x自适应屏幕 和 设置当前层显示区域