RenderTexture 橡皮檫 电筒效果

来源:互联网 发布:淘宝网水晶珠帘 编辑:程序博客网 时间:2024/04/28 07:47

参考文章:http://zengrong.net/post/2067.htm点击打开链接

1.准备资源

背景图 background.jpg


遮盖图 HelloWorld.png


橡皮檫图片 test1.png 中间透明的图。  BlendFunc为 cc.blendFunc(GL_ZERO, GL_SRC_ALPHA)

如果是实心外透明  BlendFunc为 cc.blendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA)

这里最主要还是对glBlendFunc的知识的运用,如果不想知道原理可以无视。



2. code

local background = cc.Sprite:create("background.jpg"):pos(display.cx,display.cy):addTo(self)background:scale(display.height / background:getContentSize().height)local dirt = cc.Sprite:create("HelloWorld.png"):pos(display.cx,display.cy)dirt:scale(display.width / dirt:getContentSize().width)dirt:retain();local eraser = cc.Sprite:create("test1.png"):pos(display.cx, display.cy):scale(10)eraser:retain()eraser:setBlendFunc(cc.blendFunc(GL_ZERO, GL_SRC_ALPHA));local renderTexture = cc.RenderTexture:create(display.width,display.height):pos(display.cx,display.cy):addTo(self)renderTexture:begin();dirt:visit();renderTexture:endToLua();--todoself:onTouch(function(event) eraser:pos(event.x, event.y)renderTexture:begin();-- dirt:visit(); --电筒效果eraser:visit();renderTexture:endToLua();--todoreturn true;end):enableTouch(true)


3.效果图 电筒 打开onTouch里的dirt:visit 这个注释

4.效果图 橡皮檫 注释onTouch 里的dirt:visit 


0 0