终极版本ClippingNode理解
2016-11-23 11:17
148 查看
//底板 LayerColor* layer = LayerColor::create(Color4B::RED); addChild(layer); //裁剪节点由2部分组成,一部分通过addChild加入,一部分通过stencil加入 ClippingNode* node = ClippingNode::create(); addChild(node); //sp通过addChild添加到ClippingNode中,那么sp就是被裁剪的内容 Sprite* sp = Sprite::create("HelloWorld.png"); sp->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); float scaleX = visibleSize.width/sp->getContentSize().width; float scaleY = visibleSize.height/sp->getContentSize().height; sp->setScale(scaleX, scaleY); node->addChild(sp); //stencil可以理解为用来镂空ClippingNode, 镂空的模型 Sprite* stencil = Sprite::create("CloseNormal.png"); node->setStencil(stencil); node->setInverted(true); //true表示镂空后显示底板,flase代表镂空后显示被裁剪的内容 node->setAlphaThreshold(0.05f); //设置alpha阈值, 只有模板(stencil)的alpha像素大于alpha阈值(alphaThreshold)时内容才会被绘制,设置为0.05后,透明部分不会被绘制 //屏幕触摸事件 auto ev = EventListenerTouchOneByOne::create(); ev->onTouchBegan = [=](Touch* touch, Event* ev) { Vec2 touchPos = touch->getLocation(); Sprite* bulletEffect = Sprite::create("CloseNormal.png"); stencil->addChild(bulletEffect); bulletEffect->setPosition(touchPos.x + bulletEffect->getContentSize().width/2, touchPos.y + bulletEffect->getContentSize().height/2); return true; }; ev->onTouchMoved = [=](Touch* touch, Event* ev) { Vec2 touchPos = touch->getLocation(); Sprite* bulletEffect = Sprite::create("CloseNormal.png"); stencil->addChild(bulletEffect); bulletEffect->setPosition(touchPos.x + bulletEffect->getContentSize().width/2, touchPos.y + bulletEffect->getContentSize().height/2); }; _eventDispatcher->addEventListenerWithSceneGraphPriority(ev, this);
参数为true
参数为false
相关文章推荐
- lua版本ClippingNode实现新手引导
- 解决在ios8中, cocos2dx 2.x版本里CCClippingNode没有效果的问题
- 用封装ClippingNode实现新手引导(cocos2dx 3.2版本)
- WCF Ria Service 理解制图版本【待续】
- Bridge桥接模式3 C++理解的第三个版本 代码更加专业了
- 变量终极理解
- 理解SOAP (一)介绍、SOAP 版本
- Bridge桥接模式2 C++理解的第二个版本
- 终极解决方案:Crystal report 11以下版本动态显示图片(数据库保存图片路径)
- CMMI分段式级别的易理解版本
- 关于在VS2008以下版本的MFC程序使用VS 2008 FeaturePack出现内存泄露的理解
- 理解SOAP (一)介绍、SOAP 版本、
- 终端(terminal)控制台(console)区别终极理解
- 【Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的".pvr.ccz",".plist"共用的终极精灵优化及注意事项!
- 对CVS,SVN等软件版本管理中Tag,branch,merge的一点理解
- ArcSDE的版本的理解
- java 日期 终极 处理 版本
- Bridge桥接模式1 C++理解的第一个版本
- WCF Ria Service 理解制图版本【待续】
- 【Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的".pvr.ccz",".plist"共用的终极精灵优化及注意事项!