CCSize size = CCDirector::sharedDirector()->getWinSize();
CCRenderTexture* screen = CCRenderTexture::create(size.width, size.height);
screen->begin();
CCClippingNode* clipper = CCClippingNode::create();
clipper->setContentSize(CCSizeMake(100, 100));
clipper->setZOrder(10000);
CCDrawNode *stencil = CCDrawNode::create();
//创建一个矩形并填充为clipper的大小。
CCPoint rectangle[4];
rectangle[0] = ccp(0, 0);
rectangle[1] = ccp(clipper->getContentSize().width, 0);
rectangle[2] = ccp(clipper->getContentSize().width, clipper->getContentSize().height);
rectangle[3] = ccp(0, clipper->getContentSize().height);
//由图形绘制结点来调用区域绘制函数将白色填充相应的矩形区域。
ccColor4F white = {1, 1, 1, 1};
stencil->drawPolygon(rectangle, 4, white, 1, white);
//将图形绘制结点设置为clipper的模版缓冲遮罩结点。
clipper->setStencil(stencil);
//创建一个被遮罩遮住的精灵结点。
CCSprite *content = CCSprite::create("UI/Main/tree_bg_up.png");
//设置锚点。
content->setAnchorPoint( ccp(0.5, 0.5) );
//设置位置,就放在clipper的中心位置。
content->setPosition( ccp(clipper->getContentSize().width / 2, clipper->getContentSize().height / 2) );
//放入到clipper中。
clipper->addChild(content);
clipper->visit();
screen->end();
screen->saveToFile("share.png", kCCImageFormatPNG);
i can’t get the clipped sprite in CCRenderTexture; who can help me
share.png (131.7 KB)