Cocos3D handleTouch:ofType:无法识别

时间:2014-10-18 19:41:02

标签: ios cocos2d-iphone cocos3d

当我尝试通过取消注释以下功能来激活触摸移动支持时(如文档中所推荐):

///*
-(void) ccTouchMoved: (UITouch *)touch withEvent: (UIEvent *)event {
    [self handleTouch: touch ofType: kCCTouchMoved];
}
 //*/

我收到编译错误:

No visible @interface for 'CC3HelloWorldLayer' declares the selector 'handleTouch:ofType:'

enter image description here

此函数在CCLayer.h中声明,CC3layer继承该函数。

这个奇怪错误的原因是什么?

2 个答案:

答案 0 :(得分:1)

handleTouch:ofType:方法在CC3Layer.m中定义为受保护的方法,需要在使用它的任何子类文件中重新声明(它没有公共可见性)。

由于疏忽,CC3HelloWorldLayer.m文件中缺少重新声明。我将在以后的版本中解决这个问题。

在此期间,将以下内容添加到CC3HelloWorldLayer.m文件的顶部:

@interface CC3Layer (TemplateMethods)
-(BOOL) handleTouch: (UITouch*) touch ofType: (uint) touchType;
@end

有关示例,请参阅TileLayer.mCC3DemoMashUpLayer.m文件。

...比尔

答案 1 :(得分:0)

要么handleTouch:ofType:未在CCLayer.h中声明为(公共)方法,要么CC3HelloWorldLayer类不直接或通过其父类CC3Layer从CCLayer.h继承。

你确实说两种情况都是如此,但我不能完全相信它,因为这可能是导致此错误发生的唯一两个原因。