接受触摸
在Cocos2d 3.0中每一个CCNode和每一个CCNode的子类都可以接收触摸.你只需要开启一个选项.让我们在定制的初始化器里完成它.替换MainScene.m中init方法的代码:
- (id)init
{
if (self = [super init])
{
// activate touches on this scene
self.userInteractionEnabled = TRUE;
}
return self;
}
现在Cocos2d 将会知道我们想要在这个场景中处理触摸
处理触摸
Cocos2d 会通知我们4种不同的触摸事件:
- 当触摸开始时
- 当触摸移动时
- 当触摸结束时
- 当触摸被取消时
这些不同的方法使得你可以在屏幕上跟踪触摸,对于我们第一个例子来说,我们只需要被通知触摸开始的事件.
- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event { CCLOG(@"Received a touch"); }
当用户开启一个Node的交互时,所有实现的触摸处理方法将会被调用.我们现在实现了touchBegan方法,它将在不管任何时候一个触摸开始时被调用.当触摸发生时我们使用CCLOG往console上打印调试信息.
现在运行app,每一次你触摸屏幕,一条”Received a touch”消息将显示在控制台中.现在你知道在你的游戏中如何接收任何节点的触摸了-这将是非常强大的功能.