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 import css实例代码
Jul 18 Javascript
jquery $.ajax入门应用二
Nov 19 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
关于Jquery操作Cookie取值错误的解决方法
Aug 26 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
prototype框架中美元符号$用法分析
Jan 22 Javascript
AngularJs $parse、$eval和$observe、$watch详解
Sep 21 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 Javascript
React事件处理的机制及原理
Dec 03 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 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 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
解析dedeCMS验证码的实现代码
2013/06/07 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
玩转方法:call和apply
2014/05/08 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
Python缩进和冒号详解
2016/06/01 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python发送邮件实现基础解析
2020/08/14 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
Python用Jira库来操作Jira
2020/12/28 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
共产党员公开承诺书范文
2014/03/28 职场文书
党员承诺书范文
2014/05/19 职场文书
小学生安全责任书
2014/07/25 职场文书
工作调动申请报告
2015/05/18 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server