使任何给定的CCNode实例都被触摸

时间:2013-05-16 21:59:43

标签: cocos2d-iphone cocosbuilder

所以在我的项目中我使用Cocos2D和CocosBuilder。我已经将一些我的角色分配给具有子CCSprites等的CCNode的子类。

我希望这些CCNode能够被触摸 - 例如,如果我触摸它们中的任何一个,它们就会播放一个上下文敏感的动画。我只想知道如何让节点对触摸产生反应(或者可能是让触摸层反应无法检测你是否触摸过精灵),动画部分就可以了。

有什么想法吗?那会很可爱。

萨姆

1 个答案:

答案 0 :(得分:1)

事实证明这很容易。在类的头文件中,必须将类定义为实现协议,如下所示:

@interface Foo : CCNode <CCTouchOneByOneDelegate>
{

}

你必须像这样实现onEnter和onExit:

- (void)onEnter
{
    [[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
    [super onEnter];
}
- (void)onExit
{
    [[[CCDirector sharedDirector] touchDispatcher] removeDelegate:self];
[super onExit];
}

并且您必须实施ccTouchBegan(如果您使用的是OneByOneDispatcher)