我需要在我的 UI 上方添加一个半透明的引导层,详细信息如下:
- 该层有一个(或多个)区域(我建议用户单击),它是完全透明的,并将触摸传递到下面的 UI。
- 同时,该层的其余部分是半透明的,会吞下触摸。
我使用一个LayerColor
clipped byClippingNode
来实现引导层,我有一个EventListenerTouchOneByOne
( setSwallowTouches(true)
) 来检测触摸,然后,在
bool touchBegan(cocos2d::Touch *touch, cocos2d::Event *event) {
// return (whether touch point belongs to translucent area).
}
那么有没有办法判断一个点是否属于裁剪区域呢?谢谢。
ps 由于剪裁区域的形状不规则,因此通过检查boundingBox
模板是否包含触摸点的方式可能无法接受。
pps 我已经尝试过LayerColor
以下方法的像素值判断方法,例如在 CCSprite 中获取像素的 RGBA 值,但未能获得值,有人说这些方法不再适用于cocos2d-x 3.x
?LayerColor
另外,我想知道裁剪后的像素值真的会改变吗?
再次感谢 :D