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 相关文章推荐
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
浅析AngularJS Filter用法
Dec 28 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
jQuery事件详解
Feb 23 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 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
生成缩略图
2006/10/09 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
Linux中为php配置伪静态
2014/12/17 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
Angularjs的键盘事件的绑定
2017/07/27 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
英国在线药房:Express Chemist
2019/03/28 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
计算机专业毕业生自荐书
2014/06/02 职场文书
小区推广策划方案
2014/06/06 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
八年级物理教学反思
2016/02/19 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python