cocos2dx+lua实现橡皮擦功能


Posted in Javascript onDecember 20, 2018

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

实现原理:随着触摸点的移动,通过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实现橡皮擦功能

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

Javascript 相关文章推荐
JQuery 初体验(建议学习jquery)
Apr 25 Javascript
jQuery设置div一直在页面顶部显示的方法
Oct 24 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
js实现兼容IE、Firefox的图片缩放代码
Dec 08 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
Dec 23 Javascript
AngularJS入门教程之过滤器详解
Aug 19 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
jQuery ready()和onload的加载耗时分析
Sep 08 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
vue实现图片预览组件封装与使用
Jul 13 Javascript
JavaScript实现无限轮播效果
Nov 19 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 #Javascript
fetch 如何实现请求数据
Dec 20 #Javascript
JS闭包经典实例详解
Dec 20 #Javascript
JS闭包原理与应用经典示例
Dec 20 #Javascript
Mint UI组件库CheckList使用及踩坑总结
Dec 20 #Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
Dec 20 #Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
Dec 20 #Javascript
You might like
PHP5/ZendEngine2的改进
2006/10/09 PHP
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
二级域名转向类
2006/11/09 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python3中rank函数的用法
2019/11/27 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
升旗仪式主持词
2014/03/19 职场文书
创建文明城市标语
2014/06/16 职场文书
离婚协议书的范本
2015/01/27 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python
MySQL RC事务隔离的实现
2022/03/31 MySQL