裁剪效果的实现(ClippingNode)

(1)首先要创建模板的精灵:

创建模板是用来遮掩或者显示当前模板的范围的。

Sprite* spritemb = Sprite::create("messageBoard.png");

(2)然后使用刚才创建的模板精灵来创建模板,并将spritemb使用addChild()添加到模板中:

Node* stencil = Node::create();
stencil->addChild(spritemb);

(3)创建ClippingNode,同时使用模板:

ClippingNode* cn = ClippingNode::create(stencil);

(4)为ClippingNode设置一些属性

//设置使用模板来隐藏或者显示指定区域
cn->setInverted(false);

//设置Alpha阀值
cn->setAlphaThreshold(0.05f);

//设置位置、锚点
cn->setAnchorPoint(Vec2(0, 0));
cn->setPosition(Vec2(0, 0));

(5)为ClippingNode添加底板(底板是需要被遮掩的精灵)

cn->addChild(batch);

(6)讲ClippingNode添加到场景

this->addChild(cn);

 

posted @ 2015-07-03 12:08  FERRYSELING  阅读(294)  评论(0编辑  收藏  举报