忽略透明区域cocos2dx上的触摸

时间:2013-07-11 02:18:02

标签: visual-studio-2012 cocos2d-x cocos2d-android

我有一张大小为480x800像素的图片,并且我需要在一个角落放置一个图标。我想要的是忽略透明区域上的所有触摸并仅检测图标所在的区域。 我发现了solution in SO这个问题,但它只是告诉代码使用。我需要确切地知道在哪里放置代码,因为我是初学者,并且对cocos2d了解不多,所以我期待逐步解决。

Cocos2d 2.0 - Ignoring touches to transparent areas of layers/sprites

1 个答案:

答案 0 :(得分:0)

不要使用glReadPixels因为它受到Android驱动程序中的错误的影响。您可以使用convertTouchToNodeSpace将CCTouch转换为图像坐标中的CCPoint,并在给定点读取图像像素。

从包含半透明图片的文件创建CCImage,并在分接点读取一个像素;对于透明区域,它应该是{0,0,0,0}。

不要忘记检查点击不在图片外部,并使用公式CCImage::getData()unsigned index = x * imageWidth + y数组中创建像素索引。