我想创建一个处理特定场景中所有触摸事件的类。
所以我有主要的场景类(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");
}
答案 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
{
}