cocos ClippingNode 模板区域外 全身像内容不可见

裁剪节点ClippingNode参考文

直接上代码

说明:
> 模板(Stencil:可以使用Layer、Node、Sprite等。 //我使用了Sprite m_pImgStencil可以成功 Layer 失败 ps:我不会用

> 底板  :可以使用Layer、Node、Sprite等。     // m_pImgHero

> Layer层  // mainUI Layer

目的:在模板区域显示 英雄全身像 模板区域外 全身像内容不可见

 //计划A
    if (m_pImgHero != nullptr && m_pLayerHero != nullptr && m_pImgStencil == nullptr) {

        auto clip = CCClippingNode::create();
        clip->setAnchorPoint(ccp(0.5f, 0.5f));
        auto sizeLayer = m_pLayerHero->getContentSize();
        clip->setPosition(ccp(sizeLayer.width / 2, sizeLayer.height / 2));

        m_pImgStencil = CCScale9Sprite::create("resource/ui/common/common_frame_main_3.png");  //裁剪模板;
        m_pImgStencil->setAnchorPoint(ccp(0.5f, 0.5f));
        m_pImgStencil->setPosition(ccp(0,0));
        auto sizeBackground = m_pLayerHero->getContentSize();
        m_pImgStencil->setContentSize(ccp(sizeBackground.width, sizeBackground.height));
        m_pLayerHero->addChild(m_pImgStencil);

        clip->setStencil(m_pImgStencil);
        clip->setInverted(false);
        //模板区域外透明度0
        clip->setAlphaThreshold(0);

        m_pImgHero->removeFromParent();
        m_pImgHero->setPosition(ccp(0, 0));

        m_pLayerHero->addChild(clip);

        clip->addChild(m_pImgHero);
		//模板的图片透明度
        m_pImgStencil->setOpacity(0);
        
    }
        
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值