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入门教程(12) js对象化编程
Jan 31 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
js 走马灯简单实例
Nov 21 Javascript
jQuery中scrollTop()方法用法实例
Jan 16 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
Jul 27 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
jQuery zTree树插件简单使用教程
Jan 10 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
在create-react-app中使用css modules的示例代码
Jul 31 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
利用javaScript处理常用事件详解
Apr 14 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数据库连接类~~做成一个分页类!
2006/11/25 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python 生成器协程运算实例
2017/09/04 Python
python中set()函数简介及实例解析
2018/01/09 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
软件测试面试题
2014/01/05 面试题
2014年教师培训的自我评价
2014/01/03 职场文书
初一生物教学反思
2014/01/18 职场文书
2014年调度员工作总结
2014/11/19 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
小学教师教学随笔
2015/08/14 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书