在多个CCLayers上滑动

时间:2012-09-03 17:27:58

标签: delegates cocos2d-iphone gestures cclayer

想象一下CCLayer子类Block的三个实例彼此相邻。每个都是100x100像素,并具有一些基本的方形背景艺术。这三个对象是封装CCLayer子类的一部分,称为Container

如何在三个区块中滑动并检测容器中每个区块的滑动/点按/触摸?

如果问题仅限于处理BlockContainer上的点按,则可以使用委托。类似于BlockDelegate的所需方法userTappedBlock:(Block *) b,只要点击Container,就会通知Block

然而,这种方法还没有用于滑动。我在Container中收到了回调,但仅针对被点击的第一个Block

2 个答案:

答案 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");


}