使用cocos2d在CCScene类上接收事件

时间:2014-04-08 09:09:08

标签: ios cocos2d-iphone

我想创建一个处理特定场景中所有触摸事件的类。

所以我有主要的场景类(HelloWorldScene)和另一个用于处理触摸事件的类(TouchEventHandling)。我还在HelloWorldClass上实例化TouchEventHandling类,问题是我从未收到EventHandlingClass上的触摸事件。

我的方法是对的吗?我的意思是,是否可以在其他CCScene类上实例化的CCScene类中处理触摸事件?

这是TouchEventHandling.m

-(id) init
 {
    self = [super init];
    if(!self) return nil;

    self.userInteractionEnabled = YES;
    return self;
  }

  + (TouchEventHandling *)scene
  {
       return [[self alloc] init];
  }

  -(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
  {
       CCLOG(@"Touch Begin");
  }

1 个答案:

答案 0 :(得分:0)

init方法中,将self.userInteractionEnabled = YES;替换为self.touchEnabled = YES;,然后在.h文件中添加Touchdelegate <CCTouchAllAtOnceDelegate>

使用以下mehode

- (void)registerWithTouchDispatcher
{
    [[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:
           self priority:0 swallowsTouches:YES];
}

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
    return YES;
}

- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{

}