cocos2dx精灵裁剪显示ClippingNode

ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示


使用示例

  1. autobg=LayerColor::create(Color4B(255,255));
  2. this->addChild(bg,-1);//1
  3. autostencil=Sprite::create("Closenormal.png");
  4. autoclipper=ClippingNode::create();
  5. clipper->setStencil(stencil);//设置裁剪模板//3
  6. clipper->setInverted(true);//设置底板可见
  7. clipper->setAlphaThreshold(0);//设置绘制底板的Alpha值为0
  8. this->addChild(clipper);//4
  9. autocontent=Sprite::create("HelloWorld.png");//被裁剪的内容
  10. clipper->addChild(content);//5
  11. clipper->setPosition(Vec2(visibleSize.width/2+origin.x,visibleSize.height/2+origin.y));

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

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

所以当游戏中要显示圆形头像,不用再生成一套资源,只需一张实心圆形的图片作为模板图即可。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...