您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在cocos2dx中使用lua實現橡皮擦功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
實現原理:隨著觸摸點的移動,通過setBlendFunc函數設置部分區域的顏色混合(將上層圖片透明度為0,底層我們想要的圖片就顯示出來)
--橡皮擦功能測試 local function initInfo() local scene = CCScene:create() local layer = CCLayer:create() scene:addChild(layer) --擦除后要顯示的圖片 local tupian = CCSprite:create(ROOT_RES .. "set/tip.png") tupian:setPosition(ccp(WinSizeWidth / 2, WinSizeHeight / 2)) layer:addChild(tupian) --涂層 local tu = CCSprite:create(ROOT_RES..'set/user/BG.png') tu:setPosition(ccp(WinSizeWidth/2,WinSizeHeight/2)) --layer:addChild(tu) --將圖層遍歷到texture,再將texture加入當前層 local ptex = CCRenderTexture:create(1280,720) ptex:setPosition(ccp(WinSizeWidth/2,WinSizeHeight/2)) layer:addChild(ptex) ptex:begin() tu:visit() ptex:endToLua() --橡皮擦CCDrawNode --point = CCDrawNode:create() --point:drawDot(ccp(0,0),10,ccc4f(0,0,0,0)) local point = CCSprite:create(ROOT_RES..'set/labBtn.png') layer:addChild(point) --[[local blend = ccBlendFunc() blend.src = 0 blend.dst = 1 tu:setBlendFunc(blend)--]] --local blend = tu:getBlendFunc() layer:registerScriptTouchHandler(function (eventType,x,y) if eventType == "began" then cclog("began") return true elseif eventType == "moved" then cclog("move") point:setPosition(x,y) local blend = ccBlendFunc() blend.src = 1 blend.dst = 0 point:setBlendFunc(blend) ptex:begin() point:visit() ptex:endToLua() elseif eventType == "ended" then cclog("end") elseif eventType == "cancelled" then end end,false,-1000,true) layer:setTouchEnabled(true) return scene end function getInfoLayer() CCDirector:sharedDirector():replaceScene(initInfo()) end
上述內容就是如何在cocos2dx中使用lua實現橡皮擦功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。