您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx精灵裁剪显示ClippingNode

2016-01-05 13:26 639 查看
ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。



使用示例

[cpp] view
plaincopy

auto bg = LayerColor::create(Color4B(255, 255, 255,255));

this->addChild(bg, -1);//1

auto stencil = Sprite::create("CloseNormal.png");

auto clipper = ClippingNode::create();

clipper->setStencil(stencil);//设置裁剪模板 //3

clipper->setInverted(true);//设置底板可见

clipper->setAlphaThreshold(0);//设置绘制底板的Alpha值为0

this->addChild(clipper);//4

auto content = Sprite::create("HelloWorld.png");//被裁剪的内容

clipper->addChild(content);//5

clipper->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

当clipper->setInverted(true);时显示的是底板中扣去模板的图像



当clipper->setInverted(false);显示的是模板大小的图片,相当于底板的精灵只显示模板非透明区域的图像。



所以当游戏中要显示圆形头像,不用再生成一套资源,只需一张实心圆形的图片作为模板图即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: