cocos2d-x 截取屏幕可见区域
在游戏中,我们经常需要分享到社交网络的功能。分享时,我们时常会需要用到截屏的功能。目前网上的文章虽然很多,但是都是截取的
设计分辨率(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();
}
posted on 2013-12-19 11:49 love so much 阅读(306) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步