软件之家cocos2dx+lua实现橡皮擦功能_javascript技巧_脚本之家

实现原理:随着触摸点的移动,通过setBlendFunc函数设置部分区域的颜色混合(将上层图片透明度为0,底层我们想要的图片就显示出来)

软件之家 ,游戏中刮刮乐是怎么实现的?做了一个小例子看了一下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

--橡皮擦功能测试local function initInfo() local scene = CCScene:create() local layer = CCLayer:create() scene:addChild --擦除后要显示的图片 local tupian = CCSprite:create(ROOT_RES .. "set/tip.png") tupian:setPosition(ccp(WinSizeWidth / 2, WinSizeHeight / 2)) layer:addChild --涂层 local tu = CCSprite:create(ROOT_RES..'set/user/BG.png') tu:setPosition(ccp(WinSizeWidth/2,WinSizeHeight/2)) --layer:addChild --将图层遍历到texture,再将texture加入当前层 local ptex = CCRenderTexture:create ptex:setPosition(ccp(WinSizeWidth/2,WinSizeHeight/2)) layer:addChild tu:visit --橡皮擦CCDrawNode --point = CCDrawNode:create() --point:drawDot,10,ccc4f local point = CCSprite:create(ROOT_RES..'set/labBtn.png') layer:addChild --[[local blend = ccBlendFunc() blend.src = 0 blend.dst = 1 tu:setBlendFunc--]] --local blend = tu:getBlendFunc() layer:registerScriptTouchHandler(function  if eventType == "began" then cclog return true elseif eventType == "moved" then cclog point:setPosition local blend = ccBlendFunc() blend.src = 1 blend.dst = 0 point:setBlendFunc point:visit elseif eventType == "ended" then cclog elseif eventType == "cancelled" then end end,false,-1000,true) layer:setTouchEnabled return sceneendfunction getInfoLayer() CCDirector:sharedDirector():replaceSceneend

相关文章

发表评论