Cocos2D for iPhone 的触摸事件

From:http://b.imi.im/?p=215

除了 Layer 可以接受触摸事件, 在Cocos2D 0.8以后加入一个新的特性,从而让所有的对象都可以接受触摸事件. 发现大家都不怎么用这个方法,这儿简单介绍一下.

首先添加事件接收者:

[[TouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:1 swallowsTouches:NO];

//self为接收者, 优先级参数从0开始 数字越小优先级越高,就会越先接收到事件, 最后一个参数表示是否阻止此次事件冒泡

然后实现3个方法:

#pragma mark TouchDispatcherDelegate

- (BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{

//你的代码

return YES; //这儿如果返回NO 此次触摸将被忽略

}

- (void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event

{

//你的代码

}

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

//你的代码

}

这样,就可以像处理UIView 里的事件一样去处理coco2d了.

Enjoy ur coding :)

Edit: 别忘了删除监听者, 要不然……

[[TouchDispatcher sharedDispatcher] removeDelegate:self];

你可能感兴趣的:(Cocos2D for iPhone 的触摸事件)