最近在学cocos2d,发现一些血条的形状可能不是规则的,如果用缩放进行血条的制作,就会在缩放的过程中产生形变。
这是就需要用到节点裁剪。 就是cocos2d::ClippingNode
参见http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/ClippingNode/zh.md介绍cocos2d::ClippingNode
大致思想是设置一个裁剪面,透过裁剪面看底板的内容,可以通过update移动裁剪面,达到模拟血条的效果。
大致代码如下。。。。。。
加入全局
static float aa = 320;
HelloWorld init()加入 stencil = Sprite::create("sp_zdymUI-qt_44.png"); stencil->setScale(1);//2 clipper = ClippingNode::create(); clipper->setStencil(stencil);//设置裁剪模板 //3 clipper->setInverted(true);//设置底板可见 this->addChild(clipper);//4 auto content = Sprite::create("sp_zdymUI-qt_41.png");//被裁剪的内容 clipper->addChild(content);//5 clipper->setPosition(Vec2(visibleSize.width / 2,visibleSize.height / 2 )); scheduleUpdate();
void HelloWorld::update(float dt) { aa =aa- 0.1; stencil->setPositionX(aa); }