首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将触摸分配给两个CCColorLayer?

如何将触摸分配给两个CCColorLayer?
EN

Stack Overflow用户
提问于 2012-03-09 07:53:22
回答 1查看 344关注 0票数 1

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

代码语言:javascript
复制
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;

     }

我想为每一层,第一层和第二层启用触摸,例如,如果用户触摸第一层(做一些事情),如果你触摸第二层(做其他事情)。我已经设置了触摸调度器,

代码语言:javascript
复制
-(void) registerWithTouchDispatcher
{
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:No swallowsTouches:YES];
}

之后我不知道该怎么办,我试着搜索cocos2d文档,但什么也找不到,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-09 08:18:18

如果希望它们都注册到touch dispatcher,则需要将它们划分为子类并直接将registerWithtouchDispatcher添加到每个子类,然后在主层或场景中使用这些子类。

如果你不想让层管理所有精灵的触摸,这也是你如何使用它们自己的触摸来注册单个精灵的方式。

在这样做的时候,你会想要设置不同的优先级,这样最重要的一层就有机会在另一层之前对触摸做出响应,这样你就不会让相同的触摸被多层处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9626920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档