你如何为两个CCColorLayer分配触摸?

时间:2012-03-08 23:53:22

标签: ios cocoa-touch cocos2d-iphone

我创建了两个颜色图层并在屏幕上显示:

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;

     }

我想为每一层,第1层和第2层启用触摸,例如,如果用户触摸第1层(执行某些操作),并且触摸第2层(执行其他操作)。我已经设置了触摸调度程序,

-(void) registerWithTouchDispatcher
{
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:No swallowsTouches:YES];
}

之后我不知道该怎么做,我试图搜索cocos2d文档并且找不到任何感谢!

1 个答案:

答案 0 :(得分:1)

如果您希望将它们都注册到触摸调度程序,则需要对它们进行子类化并将registerWithtouchDispatcher直接添加到每个子类,然后使用主层或场景中的子类。

如果您不希望图层管理其所有精灵的触摸,也可以使用自己的触摸注册单个精灵。

执行此操作时,您需要设置不同的优先级,以便最重要的图层有机会在另一个图层之前响应触摸,因此您不会获得由多个图层处理的相同触摸。