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 相关文章推荐
asp javascript 实现关闭窗口时保存数据的办法
Nov 24 Javascript
js实现局部页面打印预览原理及示例代码
Jul 03 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 Javascript
Jquery解析Json格式数据过程代码
Oct 17 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
nuxt+axios解决前后端分离SSR的示例代码
Oct 24 Javascript
微信小程序实现圆形进度条动画
Nov 18 Javascript
js如何获取访问IP、地区、当前操作浏览器
Jul 23 Javascript
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
Oct 11 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
Jan 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 curl post 时出现的问题解决
2014/01/30 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
python字符串连接方式汇总
2014/08/21 Python
点球小游戏python脚本
2018/05/22 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python isinstance函数用法详解
2020/02/13 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
大学生年度自我鉴定
2013/10/31 职场文书
工程索赔意向书
2014/08/30 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
《藏戏》教学反思
2016/02/23 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang