我创建了两个颜色层,并在屏幕上显示它们:
if( (self=[super init] )) {
self.isTouchEnabled = YES;
CGSize s = [[CCDirector sharedDirector] winSize];
CCLayerColor* layer1 = [CCLayerColor layerWithColor: ccc4(255, 255, 0, 80)
width: 100
height: 300];
layer1.position = ccp(s.width/3, s.height/2);
layer1.isRelativeAnchorPoint = YES;
[self addChild: layer1 z:1];
CCLayerColor* layer2 = [CCLayerColor layerWithColor: ccc4(0, 0, 255, 255)
width: 100
height: 300];
layer2.position = ccp((s.width/3)*2, s.height/2);
layer2.isRelativeAnchorPoint = YES;
[self addChild: layer2 z:1];
}
return self;
}我想为每一层,第一层和第二层启用触摸,例如,如果用户触摸第一层(做一些事情),如果你触摸第二层(做其他事情)。我已经设置了触摸调度器,
-(void) registerWithTouchDispatcher
{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:No swallowsTouches:YES];
}之后我不知道该怎么办,我试着搜索cocos2d文档,但什么也找不到,谢谢!
发布于 2012-03-09 08:18:18
如果希望它们都注册到touch dispatcher,则需要将它们划分为子类并直接将registerWithtouchDispatcher添加到每个子类,然后在主层或场景中使用这些子类。
如果你不想让层管理所有精灵的触摸,这也是你如何使用它们自己的触摸来注册单个精灵的方式。
在这样做的时候,你会想要设置不同的优先级,这样最重要的一层就有机会在另一层之前对触摸做出响应,这样你就不会让相同的触摸被多层处理。
https://stackoverflow.com/questions/9626920
复制相似问题