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);显示的是模板大小的图片,相当于底板的精灵只显示模板非透明区域的图像。
所以当游戏中要显示圆形头像,不用再生成一套资源,只需一张实心圆形的图片作为模板图即可。
使用示例
[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);显示的是模板大小的图片,相当于底板的精灵只显示模板非透明区域的图像。
所以当游戏中要显示圆形头像,不用再生成一套资源,只需一张实心圆形的图片作为模板图即可。
相关文章推荐
- cocos飞机游戏地图滚动速度由快到慢的实现
- cocos2dx2.x&3.x部分函数对照表
- cocos2d-x3.7 cclabel文字破碎,异常,变乱
- COCOS学习笔记--内存管理(二)-PoolManager类和AutoreleasePool类的讲解
- COCOS学习笔记--内存管理(一)-引用计数和Ref类的讲解
- cocos2d-x3.2下使用Umeng 64位SDK注意事项
- cocos2d-x 3.0 正式版 项目创建
- CocosStudio文件解析工具CsdAnalysis
- COCOS-HTML5-3.9版本学习(二)HTML5的COCOS结构模板
- Cocos结构
- COCOS-HTML5-3.9版本学习(一)HTML5的COCOS环境
- cocos2dx 2.x与cocos2dx 3.x类库用法对比
- 安装cocos ide 遇到的问题
- Cocos在windows7下的配置与apk打包
- CocosBuilder使用记录
- cocos纯代码写一个简单的菜单
- Cocos2D实现RPG队伍菜单任意调整角色顺序的效果
- Cocos2D实现RPG队伍菜单任意调整角色顺序的效果
- Cocos2D实现RPG队伍菜单任意调整角色顺序的效果
- <我是游戏小白>cocos2d-js迈出第一步