DrawNode遮罩
来源:互联网 发布:sql导入excel数据 编辑:程序博客网 时间:2024/05/20 21:22
话不多说
spriteNode = sprite;
spriteNode->setAnchorPoint(Vec2(0.5, 0.5));clippeNode = ClippingNode::create();
clippeNode->setInverted(true);//设置底板可见(显示裁剪区域)
clippeNode->setAlphaThreshold(255);//设置绘制模板的alpha值
this->addChild(clippeNode, 10);
LayerColor *layerColor = LayerColor::create(Color4B(0, 0, 0, 0));
clippeNode->addChild(spriteNode);
clippeNode->addChild(layerColor);
// DrawNode *pDrawNode = DrawNode::create();
// Color4F drawColor = { 1, 1, 0, 0 };
// Vec2 rect[4] = {
// Vec2(-numRadius, 0),
// Vec2(-numRadius, numRadius*2),
// Vec2(numRadius, numRadius*2),
// Vec2(numRadius, 0)
// };
// pDrawNode->drawPolygon(rect, 4, drawColor, 0, drawColor);
// pDrawNode->setPosition(offset);
// pDrawNode->setAnchorPoint(Vec2(0.5, 0));
// pDrawNode->setRotation(originAngle);
Sprite *pDrawNode = Sprite::create("4.png");
pDrawNode->setAnchorPoint(Vec2(0.5, 0));
pDrawNode->setPosition(offset);
pDrawNode->setRotation(originAngle);
//抗锯齿
pDrawNode->getTexture()->setAntiAliasTexParameters();
//pDrawNode->getTexture()->setAliasTexParameters();//不抗锯齿
clippeNode->setStencil(pDrawNode);
这部分代码其实在做一个写一个环形进度条的,不过后来一想这部分代码的实现可以做的事好多,比如说消除类的游戏,消除了部分元素后补充的元素从上方掉下来,只是在消除区域才能看到,我当时就在想怎么做到的,后来写了这个之后觉得可能就是通过上面这种形式实现的,rect你自己画一个矩形然后只显示矩形以内的东西,这样就可以实现了,
LayerColor *colorLayer = LayerColor::create(Color4B(0, 0, 0, 0));
colorLayer->setPosition(Vec2(-middleStar_x + 4.5 * starPriteSize.width, -middleStar_y + 4.5 * starPriteSize.height));
node = ClippingNode::create();
node->setPosition(Vec2(middleStar_x - 4.5 * starPriteSize.width, middleStar_y - 4.5 * starPriteSize.height));
this->addChild(node);
node->setInverted(false);
node->setAlphaThreshold(255);
node->addChild(colorLayer, 0);
DrawNode* pDrawNode = DrawNode::create();
Color4F drawColor = { 0, 0, 0, 0 };
Vec2 rect[4] = {
Vec2(0, 0),
Vec2(9 * starPriteSize.width, 0),
Vec2(9 * starPriteSize.width, 9 * starPriteSize.height),
Vec2(0, 9 * starPriteSize.height)
};
pDrawNode->drawPolygon(rect, 4, drawColor, 0, drawColor);
pDrawNode->setPosition(Vec2::ZERO);
node->setStencil(pDrawNode);
然后只需要把元素添加在colorLayer上就可以了,希望对博友有帮助。
- DrawNode遮罩
- DrawNode
- cc.DrawNode
- TreeView::DrawNode Event
- cocos2dx-js cc.DrawNode
- DrawNode绘制几何图形
- cocos2d DrawNode图形渐变
- 【DrawNode比较先进】cocos2dx3.0 DrawNode的使用
- Cocos2d-x3.0 DrawNode画图
- cocos2dx3.0 DrawNode的使用
- cocos2d-x简单绘图(DrawNode)
- TreeView.DrawNode Event 官方指南
- Cocos2d-x3.1中DrawNode的使用
- Cocos2d-x绘图API:DrawingPrimitives和DrawNode
- cocos2dx-3.2(34) DrawNode 绘图API
- cocos2d-x 3.2 DrawNode 绘图API
- cocos2d-js cc.DrawNode画图参考大全
- cocos2d-js cc.DrawNode用法示例
- cs学习笔记
- 几个技术类网站
- WP开发 - VS2013证书过期解决
- 进程和线程的联系和区别(沥血推荐)
- 淘宝 tsar 安装以及从Tengine/Nginx端采集数据.
- DrawNode遮罩
- iOS应用架构谈 开篇
- Effective Java——并发
- JAVA初始化顺序
- 在linux下install sublime text2
- Google’s fused location API for Android
- Linux CPU实时监控mpstat命令详解
- request,路径问题,转发和重定向
- hdu5248序列变换(二分+贪心)基础题