如题,2.x的实现方式不适合3.x,找方法看源码都没找出好的方案,求大神帮助!
你说的实现,是指啥? 不规则按钮点击么?
对滴,点击图片上没像素的地方不算点击。
这种点击的,用摄像机截个图,然后判断点击的位置是不是空白像素,行不行?可以封装个通用的组件,我本来想弄,后来给忘了····
不行,我拿到texture,但用这个已经无法判断了
emmmm 变化这么大了么···3.x我还没用到这个功能···
自己套个多边形控件不久得了
cc.Intersection.pointInPolygon 查一下这个就知道怎么实现了
我需要点击的是图片,不是多边形 
就是图片上面加个多边形碰撞组件,实现不规则按钮
虽然是个解决办法,但这种治标不治本,我太想用这种。
bool Button::AlphaTouchCheck(const Vec2& point)
{
Image* normalImage = new Image();
normalImage->initWithImageFile(_normalFileName); //_normalFileName是button默认的那张图片路径
unsigned char* data = normalImage->getData();
size_t dataLen = normalImage->getDataLen();
if (data == NULL)
{
return true;
}
auto locationInNode = _buttonNormalRenderer->convertToNodeSpace(point);
int pa = 4 * ((normalImage->getHeight() - (int)(locationInNode.y) - 1) * normalImage->getWidth() + (int)(locationInNode.x)) + 3;
if ( pa >= dataLen)
{
CC_SAFE_DELETE(normalImage);
CCLOG("AlphaTouchCheck Out of bounds");
return false;
}
unsigned int ap = data[pa];
if (ap < _alphaTouchValue) //这里判断透明度,小于20就判断为点击无效,课根据自己的需要修改为0等等…
{
CC_SAFE_DELETE(normalImage);
return false;
}
else
{
CC_SAFE_DELETE(normalImage);
return true;
}
return true;
}
这是cocos2dx的
改一改应该可以用在ccc的原生上
你看下有没有帮助
web的俺也不会 
没用,3.x改动有点多,2.x和2dx都不能做参考
仓考白玉无冰的 polygonSprite 做个多边形Sprite 挂点击事件是否可行?
治标不治本呀,最好还是可以根据透明度去做
解决了,思路还是按照这个来https://forum.cocos.org/t/js/37665
区别在于图片的地址信息没了,我找来找去,终于找出来了。
spriteFrame.original._texture.image.url//地址在这里
3.x封装的时候似乎分开了,如果在spriteFrame.texture里面找url,是找不到的,必须要经过original
2赞
图片就是遍历图片数据!!性能消耗巨大!!
你想差了,不会遍历图片
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。