我有一张大小为480x800
像素的图片,并且我需要在一个角落放置一个图标。我想要的是忽略透明区域上的所有触摸并仅检测图标所在的区域。
我发现了solution in SO这个问题,但它只是告诉代码使用。我需要确切地知道在哪里放置代码,因为我是初学者,并且对cocos2d了解不多,所以我期待逐步解决。
Cocos2d 2.0 - Ignoring touches to transparent areas of layers/sprites
答案 0 :(得分:0)
不要使用glReadPixels
因为它受到Android驱动程序中的错误的影响。您可以使用convertTouchToNodeSpace
将CCTouch转换为图像坐标中的CCPoint,并在给定点读取图像像素。
从包含半透明图片的文件创建CCImage,并在分接点读取一个像素;对于透明区域,它应该是{0,0,0,0}。
不要忘记检查点击不在图片外部,并使用公式CCImage::getData()
在unsigned index = x * imageWidth + y
数组中创建像素索引。