除了 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];

还有这些你喜欢么?

  • 2010/04/22 -- 半透明状态栏与导航条的错位
    iPhone的状态栏可以设置成半透明, 这是众所周知的, 用UINavigationController,在页面切换时, 如果你的子viewController的view是全屏的(480*320) 就...
  • 2010/04/16 -- 把UIView覆盖到状态栏上的方法
    View In iTunes 最近iPhone上的一个新闻阅读软件 Reeder 更新了, 非常好用, 稳定,而且速度飞快. 用了之后 我立马就把原来的 Byline 删除了. 这个软件征服...
  • 2009/04/23 -- Different between viewDidDisappear & viewWillDisappear
    Recently I have a proj using UIView animation, the animation delegated to a view’s delegate. ...
  • 2010/05/22 -- IMIUI update
    Just want you know I'm keeping on my fav baby "IMIKit". So, recently I focused on the UI part of I...
  • 2010/05/15 -- 动态调用类和方法
    举一个很简单的例子: 某公司的有1000名员工, 每个员工的工资都不一样. 发工资的时候, 这要是人工去发, 耗费的时间和精力是非常大的. 所以财务会打一个表格给银行, 委托银行转账. 站...