0

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

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

如果问题仅限于处理对Blocks 的点击,Container那么可以使用委托。类似于BlockDelegate所需方法的东西,每当点击 a 时userTappedBlock:(Block *) b都会通知。ContainerBlock

但是,这种方法还不适用于刷卡。我收到了回调,Container但只针对第一个Block被点击的回调。

4

2 回答 2

1

您可以在包含您的块的层中处理触摸。然后,在touchEnded:WithEvent:方法中检查哪个块包含触摸的位置。

于 2012-09-03T17:32:33.980 回答
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");


}
于 2013-12-26T09:45:32.413 回答