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 getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
Angular表单验证实例详解
Oct 20 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
js实现放大镜特效
May 18 Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
原生js实现商品筛选功能
Oct 28 Javascript
JavaScript实现简单拖拽效果
Sep 15 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
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/10/09 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python 初始化多维数组代码
2008/09/06 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
python tkinter基本属性详解
2019/09/16 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
生产班组长岗位职责
2014/01/05 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
河童之夏观后感
2015/06/11 职场文书
小学毕业感言100字
2015/07/30 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书