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 相关文章推荐
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
Nov 30 Javascript
传智播客学习之JavaScript基础篇
Nov 13 Javascript
jquery插件 autoComboBox 下拉框
Dec 22 Javascript
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
JS 终止执行的实现方法
Nov 24 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
Mar 06 Javascript
vue-ajax小封装实例
Sep 18 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
python基于Selenium的web自动化框架
2019/07/14 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
平安建设实施方案
2014/03/19 职场文书
竞聘书模板
2014/03/31 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
后勤个人工作总结
2015/02/28 职场文书
保姆聘用合同
2015/09/21 职场文书
2016党员入党决心书
2015/09/22 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android