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 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
写自已的js类库需要的核心代码
Jul 16 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
jQuery中校验时间格式的正则表达式小结
Sep 22 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 Javascript
javascript循环链表之约瑟夫环的实现方法
Jan 16 Javascript
jQuery实现元素的插入
Feb 27 Javascript
vue v-on监听事件详解
May 17 Javascript
详解require.js配置路径的用法和css的引入
Sep 06 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
JavaScript原始值与包装对象的详细介绍
May 11 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
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
js获取php变量的实现代码
2013/08/10 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
python strip()函数 介绍
2013/05/24 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Python input函数使用实例解析
2019/11/22 Python
Python内置函数property()如何使用
2020/09/01 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
Java语言的优势
2015/01/10 面试题
毕业生精彩的自我评价分享
2013/10/06 职场文书
行政经理的岗位职责
2013/11/23 职场文书
和平主题的演讲稿
2014/01/12 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
小学家长通知书评语
2014/12/31 职场文书
物业公司管理制度
2015/08/05 职场文书
运动会广播稿50字
2015/08/19 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
mysql知识点整理
2021/04/05 MySQL
Python基础之数据类型知识汇总
2021/05/18 Python
Python制作一个随机抽奖小工具的实现
2021/07/07 Python