屁话就不多说了,直接上干货:
Size visibleSize = Director::getInstance()->getVisibleSize();
CCSprite* bg = CCSprite::create("mainbg.jpg");//一张背景图,没啥卵用
bg->setPosition(visibleSize / 2);
addChild(bg);
CCSprite* node = CCSprite::create("node.png");//根据此精灵来裁切
//创建裁切节点
CCClippingNode* clipNode = CCClippingNode::create();
clipNode->setPosition(visibleSize/2);
this->addChild(clipNode);
clipNode->setStencil(node);
clipNode->setInverted(true); //为true,被裁剪部分不可见,剩余部分可见,为false,被裁剪部分可见,剩余部分不可见
clipNode->setAlphaThreshold(0); // 设置绘制模板的Alpha通道,为1时,根据节点的ContentSize来裁剪(自认为是这样,其实并不知道有卵用)
clipNode->setContentSize(node->getContentSize());
clipNode->addChild(node, 1);
Sprite* clipedSp = Sprite::create("blackbg.png");//被裁切的东东
clipNode->addChild(clipedSp, 2);
效果如图: