每个CCSprite都是一个regtangle区域,但它的某些部分是可见的,意味着我们看到的图像而其他部分不是。所以我想知道当我触摸CCsprite时触摸点是可见区域还是透明区域,有没有办法检查这个,比如获取触摸点的像素颜色??
答案 0 :(得分:3)
使用OpenGL API可以做到这一点,但这是错误的解决方案。我建议检测精灵形状内的抽头点(将手动定义)。要计算边界形状,您可以使用此工具:SpriteHelper。要检查多边形内部的点(甚至是非凸面),有很好的algorythm:Determining if a point lies on the interior of a polygon。我在iPhone游戏中使用这种方法。
与直接检查像素不透明度相比,这种方法的有效性:
PS:如果你肯定想要检查像素,一个很好的解决方案是制作额外的纹理像素布尔图(每个位响应像素阈值)。