所以在我的项目中,我使用 Cocos2D 和 CocosBuilder。我已经将我的一些角色指定为带有子 CCSprite 等的 CCNode 的子类。
我希望这些 CCNode 能够对触摸做出反应——例如,如果我触摸其中任何一个,它们就会播放上下文相关的动画。我只想知道如何使节点对触摸产生反应(或者,让层对触摸产生反应,以检测您是否触摸了精灵),动画部分很好。
有任何想法吗?那将是可爱的。
山姆
所以在我的项目中,我使用 Cocos2D 和 CocosBuilder。我已经将我的一些角色指定为带有子 CCSprite 等的 CCNode 的子类。
我希望这些 CCNode 能够对触摸做出反应——例如,如果我触摸其中任何一个,它们就会播放上下文相关的动画。我只想知道如何使节点对触摸产生反应(或者,让层对触摸产生反应,以检测您是否触摸了精灵),动画部分很好。
有任何想法吗?那将是可爱的。
山姆
事实证明,这相当容易。在类的头文件中,您必须将类定义为实现协议,如下所示:
@interface Foo : CCNode <CCTouchOneByOneDelegate>
{
}
你必须像这样实现 onEnter 和 onExit :
- (void)onEnter
{
[[[CCDirector sharedDirector] touchDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
[super onEnter];
}
- (void)onExit
{
[[[CCDirector sharedDirector] touchDispatcher] removeDelegate:self];
[super onExit];
}
并且您必须实现 ccTouchBegan(如果您使用的是 OneByOneDispatcher)