Cocos2d-x像素级触摸处理
2016-03-15 14:22
363 查看
最近研究了一下像素级的触摸处理,有时候我们用一个不规则的图形作为一个按钮,这个不规则的图形是一张矩形的png图片,很可能图片的实际有效的显示内容只占整个png图片的很小一部分,剩下的大部分都是png图片的透明区域,我们想把这部分透明区域过滤掉,实现一个触摸到真实的内容才会有按钮响应的效果。
刚开始试图通过CCSprite直接获取到纹理的像素信息,但是Cocos2d-x并没有给我们提供直接通过CCSprite获取像素信息的接口,研究了几个网上的Demo,发现通过使用RenderTexture重绘可以实现这一效果,下面把代码贴出来。
当点击到了透明的黑色区域时,屏幕上不显示任何文字,观察打印日志信息:
实现的原理:我通过点击的时候把图片进行重绘,重绘的过程中,可以通过RenderTexture也就是画布,把整个画布上的像素点信息全部拿到,我让绘制的内容和画布的大小是一样的,所以就能保证画布上的每一个像素点就是我想要绘制的图片的像素点,然后通过判断像素点的alpha通道值,来确定这个点是否是透明色的,如果是透明色则不做触摸响应。
来源网址:/article/8540031.html
相关文章推荐
- cocos2d-x 碰撞问题详解(上)
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- cocos2d-x中几种存储数据的方式
- Cocos2d-x 3.1.1 学习日志5--cocos2d-x3.1.1打飞机的实现
- cocos2d-x lua 示例Demo
- MAC下Android Studio 1.4编译构建Cocos2d-x 3.9之Android版本程序
- Cocos2d-x客户端代码加密
- Cocos2dx android apk签名打包流程
- Cocos2d-x客户端资源加密
- Cocos2d-x中使用OpenGL ES2.0编写shader
- Cocos2dx-lua -- 入门-class
- 使用Cocos构建一个完整项目
- cocostudio导出数据在代码中加载
- cocos2dx中回调函数局部变量无效(cocos2d-x学习笔记)
- cocos2d-x iOS真机下载非根目录文件提示下载失败解决办法
- cocos2d js 怎样动态载入外部图片
- cocos2d-x配置Android.mk遍历文件
- 精灵帧缓存SpriteFrameCache-Cocos2dx-lua
- cocos2d-x3.9利用cocos引擎一键打包Android平台APK
- cocos2d-x 3.6版连连看载入资源