在cocos2d-x中如何判断CCSprite上的点是否透明?

最近用cocos2d-x做了一个拼图游戏,游戏中的图片都是不规则的,但都是png格式的,在用手指点击移动不规则图片的时候,当触摸到透明区域的时候图片也会响应点击事件,如何做才能避免透明区域响应事件,思路是判断CCSprite上点击的点是否是透明点。

在网上找了下,发现都是在cocos2d下的。 因为图片很多,而且也不规则,所以用什么区域来解决的不太现实。 求大牛们指教

— Begin quote from ____

luyungeng 发表于 2012-10-16 14:24 url

手头没有代码,参考这个函数里面的实现吧,比较类似:
CCTexture2D::initPremultipliedATextureWithImage …

— End quote

CCTexture2D::initPremultipliedATextureWithImage ,用到了CCImage *, 我用 pimage = new CCImage; pimage ->initwithImageFile(" …png"); 为什么getData 是0, 我试用这个pimage创建精灵却是可以的,我看获取像素那是用到了getdata的

— Begin quote from ____

kundouzhishou 发表于 2012-10-15 20:14 url

ccimage getdata后能判断是否透明

— End quote

感谢热心回答 , 能否再详细点啊

— Begin quote from ____

luyungeng 发表于 2012-10-16 11:17 url

我们之前做的是打开图片的像素区域,计算点击的位置对应的像素,根据该像素的rgba值中alpha的取值来判断这 …

— End quote

我的图片都是同一格式的, 就是 计算点击的位置对应的像素怎么搞啊?

— Begin quote from ____

luyungeng 发表于 2012-10-16 14:24 url

手头没有代码,参考这个函数里面的实现吧,比较类似:
CCTexture2D::initPremultipliedATextureWithImage …

— End quote

谢谢你啊,我去看看

ccimage getdata后能判断是否透明

:slight_smile: 自己顶