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,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
jquery选择器之内容过滤选择器详解
Jan 27 Javascript
深入分析下javascript中的[]()+!
Jul 07 Javascript
prototype.js常用函数详解
Jun 18 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 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学习笔记(二):变量详解
2015/04/17 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
在python的类中动态添加属性与生成对象
2016/09/17 Python
python中range()与xrange()用法分析
2016/09/21 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
C#的几个面试问题
2016/05/22 面试题
淘宝中秋节活动方案
2014/01/31 职场文书
幼儿评语大全
2014/04/30 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
中班下学期个人总结
2015/02/12 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS
Python进程池与进程锁之语法学习
2022/04/11 Python
MySQL中order by的执行过程
2022/06/05 MySQL