这几天用到了遮罩,在网上看了很多例子,也遇到些问题,所以就要记下来,以后再用到可以直接拿来用,好记性不如烂笔头嘛。哈哈 不说了,直入正题.....
--创建裁剪node
local clippingNode = cc.ClippingNode:create()
clippingNode:setPosition(0,0)
clippingNode:setAlphaThreshold( 0.05 )
clippingNode:setInverted( true )
display.getRunningScene():addChild( clippingNode,1000 )
--AlphaThreshold:表示像素的透明度值。
-- 只有模板(stencil)中像素的alpha值大于alpha阈值时,内容才会被绘制。
-- AlphaThreshold:取值范围[0,1]。
-- 默认为 1 ,表示AlphaThreshold测试默认关闭,即全部绘制。
-- 若不是1 ,表示只绘制模板中,alpha像素大于alphaThreshold的内容。
-- 倒置显示 Inverted -------------
-- false :显示被模板裁剪下来的底板内容。默认为false。
-- true :显示剩余部分。
--创建模版
local stencil = display.newSprite( "res/xmj"..Config.imgext )
stencil:setPosition( 0,0 )
stencil:setAnchorPoint( 0.5,0.5)
clippingNode:setStencil( stencil )
--设置要裁剪的底板
local content = display.newSprite( "res/xmjbg"..Config.imgext )
content:setAnchorPoint( 0.5,0.5)
content:setPosition(0,0)
clippingNode:addChild( content )
--需要开启深度测试
cc.Director:getInstance():setDepthTest( true )
-- 模板(Stencil):可以使用Layer、Node、Sprite等。
-- 底板 :可以使用Layer、Node、Sprite等。
-- Layer层
--** * 注意:我在PC上面屏幕变成了白色,但是在模拟器(手机)上面是好的,所以大家遇到可以在模拟器(手机)跑下 **--