demo下载:Quick-x-HighlightArea-master.zip
裁剪模式
(1)创建裁剪对象
1 2 3 4 5 6 7 8 9 10 | localbgcolor=ccc3(255,0)--非高亮区域颜色 localbgOpacity=0.6--非高亮区域透明度 locallayercolor=cclayercolor:create(ccc4(bgcolor.r,bgcolor.g,bgcolor.b,bgOpacity*255),size.wIDth,size.height) localclipNode=CcclipPingNode:create(); clipNode:setInverted( true )--设定遮罩的模式 显示没有被遮起来的纹理如果是 false 就显示遮罩起来的纹理 clipNode:setAlphaThreshold(0)--设定遮罩图层的透明度取值范围 clipNode:addChild(layercolor) self:addChild(clipNode) |
(2)创建用来裁剪的对象
因为这里都是使用同一张贴图,所以使用CCSpriteBatchNode统一创建
localbatchNode=CCSpriteBatchNode:create( "Images/circle.png" ) localcircleSpr=CCSprite:createWithTexture(batchNode:getTexture()) localcircleSize=circleSpr:getContentSize() localwIDthPara localheightPara localrectArray={ [1]=CCRect(100,100,100), [2]=CCRect(200,150), [3]=CCRect(450,35,150, [4]=CCRect(300,300, } for i,rectinipairs(rectArray) do localcircleSpr=CCSprite:createWithTexture(batchNode:getTexture()) if notwIDthParathen localcircleSize=circleSpr:getContentSize() --宽度和高度参数,1.4142为根号2,矩形的外接椭圆的长轴与短轴长度 wIDthPara=1.4142/circleSize.wIDth heightPara=1.4142/circleSize.height end localfScaleX=wIDthPara*rect.size.wIDth localfScaleY=heightPara*rect.size.height circleSpr:setScaleX(fScaleX) circleSpr:setScaleY(fScaleY) circleSpr:setposition(rect:getMIDX(),rect:getMIDY()) batchNode:addChild(circleSpr) end clipNode:setStencil(batchNode)--关键代码 |
具体效果(裁剪模板模式 StencilMode)
教程方法一的使用的混合模式(BlendMode)
原始图片(Origin)
可以看到,裁剪模式已经出现了锯齿(后面会用另外一种方式解决这个问题)
总结以上是内存溢出为你收集整理的制作新手引导高亮区域方法之二:裁剪模式全部内容,希望文章能够帮你解决制作新手引导高亮区域方法之二:裁剪模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)