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 相关文章推荐
js 图片轮播(5张图片)
Dec 30 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 Javascript
Vue数据驱动模拟实现2
Jan 11 Javascript
ES6学习之变量的两种命名方法示例
Jul 18 Javascript
详解React Native顶|底部导航使用小技巧
Sep 14 Javascript
JS实现的全选、全不选及反选功能【案例】
Feb 19 Javascript
vue路由跳转传参数的方法
May 06 Javascript
javascript实现贪吃蛇经典游戏
Apr 10 Javascript
JavaScript数组排序功能简单实现
May 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 HandlerSocket的使用
2011/05/02 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
Python数据类型详解(二)列表
2016/05/08 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
django中模板的html自动转意方法
2018/05/27 Python
Python基于WordCloud制作词云图
2019/11/29 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
社区七一党员活动方案
2014/01/25 职场文书
付款委托书范本
2014/04/04 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Oracle笔记
2021/04/05 Oracle
Java移除无效括号的方法实现
2021/08/07 Java/Android