cocos2dx中的ClippingNode,头像裁成圆形显示后
2019-08-28 本文已影响0人
东方小白
之前写的太复杂没有完全理解,这次 遇到上代码,提醒以后
Size size = Director::getInstance()->getVisibleSize();
ClippingNode* clippingNode = ClippingNode::create();//裁剪节点
Sprite* stencil = Sprite::create("stencil.png");
clippingNode->setStencil(stencil);//设置模板
this->addChild(clippingNode);
clippingNode->setPosition(Vec2(size.width / 2, size.height / 2));
ImageView* image = ImageView::create();
image->loadTexture("xx.png");
image->setAnchorPoint(Vec2(0.5, 0.5));
image->setPosition(Vec2(0,0));
clippingNode->addChild(image);//设置底板(透过模板的显示)
clippingNode->setInverted(false);//设置模板下可见
clippingNode->setAlphaThreshold(0.1f);//设置大于0.1的透明度可见
如果是已经存在的控件
xx->retain(); //移除前要retain()
xx->removeFromParent();//移除自身
pClipNode->addChild(xx);//加载到裁剪节点上
parent->addChild(pClipNode);//裁剪节点添加到父节点上
xx->release();//释放底板内容