CCLayer <ccrgbaprotocol> setOpacity:]无法识别的选择器</ccrgbaprotocol>

时间:2012-02-22 02:15:14

标签: iphone cocos2d-iphone cclayer

PopuupScene图层

@interface PopupScene : CCLayer <CCRGBAProtocol>

错误消息

  

2月22日11:06:31未知MyProject [443]: - [PopupScene   setOpacity:]:无法识别的选择器发送到实例0xa68ca80 2月22日   11:06:31未知MyProject [443]: * 由于终止应用程序   未捕获的异常'NSInvalidArgumentException',原因:' - [PopupScene   setOpacity:]:无法识别的选择器发送到实例

CCRGBAProtocol有setOpacity方法,但发生错误......

我怎么能淡出&amp; CCLayer? (不透明度动画,CCFadeIn&amp; CCFadeOut)

1 个答案:

答案 0 :(得分:0)

CCLayer没有实现该协议(查看CCLayer.h)。如果您确实需要在图层上设置透明度,则必须手动完成(如@Ravin建议的那样)。基本上声明并实现setOpacity方法,并在该方法中执行您认为必须完成的设置图层的不透明度。您可能会发现,如果您的图层嵌入了叠加的精灵以及其他不实现协议的对象,那么获取您要完成的结果可能会非常棘手。

我刚刚发现(urghhh)如果您使用的是cocos2d版本1.0.1,则有一个

CCLayerColor是CCLayer的子类,它实现了CCRGBAProtocol协议。

CCLayer的所有功能均有效,另外还有以下新功能:

不透明度

RGB颜色