想象一下CCLayer
子类Block
的三个实例彼此相邻。每个都是100x100像素,并具有一些基本的方形背景艺术。这三个对象是封装CCLayer
子类的一部分,称为Container
。
如何在三个区块中滑动并检测容器中每个区块的滑动/点按/触摸?
如果问题仅限于处理Block
中Container
上的点按,则可以使用委托。类似于BlockDelegate
的所需方法userTappedBlock:(Block *) b
,只要点击Container
,就会通知Block
。
然而,这种方法还没有用于滑动。我在Container
中收到了回调,但仅针对被点击的第一个Block
。
答案 0 :(得分:1)
您可以处理包含块的图层中的触摸。然后,在touchEnded:WithEvent:
方法中检查哪个块包含触摸的位置。
答案 1 :(得分:0)
在CustomLayer.cpp中编写此方法以点击图层
void CustomLayer :: ccTouchesBegan(CCSet * pTouches,CCEvent * pEvent)
{
CCTouch *touch = (CCTouch *) pTouches->anyObject();
CCPoint location = touch->getLocationInView();
location = CCDirector::sharedDirector()->convertToGL(location);
if(layer->boundingBox().containsPoint(location))
CCLog("layer Hit Test");
}