cocos2dx 3.0之判断点击精灵透明区域
2013-12-24 20:50
645 查看
本站文章转载务必在明显处注明:[b]原文链接 http://blog.csdn.net/cjsen/article/details/17241027[/b]
前言
在Layer层中 如何判断触摸事件 在图片精灵中,触摸点是否在图片的透明区域
实现
其中当触摸事件为已在精灵内部,进而再判断是否在透明区域,其中node为要判断的精灵
前言
在Layer层中 如何判断触摸事件 在图片精灵中,触摸点是否在图片的透明区域
实现
if(p1.containsPoint(p)){ int8_t data[4]; Point touchPoint = node -> convertTouchToNodeSpace(touch); Point location = Point((touchPoint.x) * CC_CONTENT_SCALE_FACTOR(), (touchPoint.y) * CC_CONTENT_SCALE_FACTOR()); RenderTexture* renderTexture = RenderTexture::create(1* CC_CONTENT_SCALE_FACTOR(),1 * CC_CONTENT_SCALE_FACTOR(), Texture2D::PixelFormat::RGBA8888); renderTexture->beginWithClear(0,0,0,0);//只保存渲染一个像素的数据 Point oldPos = node->getPosition(); Point oldAnchor = node->getAnchorPoint(); node->setAnchorPoint(Point(0,0)); node->setPosition(Point(-location.x, -location.y)); node->visit(); node->setAnchorPoint(oldAnchor); node->setPosition(oldPos); glReadPixels(0,0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, data); renderTexture->end(); renderTexture->release(); //检测alpha值 CCLOG("X:%.0f y:%.0f R: %d, G: %d, B: %d, A: %d tag:%d",location.x ,location.y, data[0], data[1], data[2], data[3],this->getTag()); if(data[0] || data[1] || data[2] || data[3]) { CCLOG("非透明"); }else{ CCLOG("透明"); } }
其中当触摸事件为已在精灵内部,进而再判断是否在透明区域,其中node为要判断的精灵
相关文章推荐
- cocos2dx 3.x判断node点击区域是否透明
- 非透明区域点击判断
- cocos2dx 检测是否点击到了图片的透明区域
- cocos2dx 检测是否点击到了图片的透明区域
- Cocos2dx图片像素颜色值获取,可用于判断是否是图片的透明区域
- android判断点击位置是否在扇形区域内
- jQuery判断点击事件是否在目标区域
- Android中不规则图片按钮透明区域的点击效果
- JavaScript判断点击区域
- cocos2dx 精灵点击事件
- jQuery判断当前点击位置是否非指定元素区域
- cocos2dx中精灵点击事件处理的两种方式——Sprite和ImageView
- cocos2dx不响应透明区域事件
- as3页游聊天框点击透明区域及普通文本支持寻路方案
- as3页游聊天框点击透明区域及普通文本支持寻路方案
- 点击精灵区域消除,点击其他区域创建新精灵。(模拟放置炸弹,及引爆)
- 判断是否点击到了精灵(Sprite)
- iOS实现UIImageView透明区域点击事件穿透(OC&swift)
- iOS实现UIImageView透明区域点击事件穿透
- iOS实现UIImageView透明区域点击事件穿透