【问题标题】:CCLayer <CCRGBAProtocol> setOpacity:] unrecognized selectorCCLayer <CCRGBAProtocol> setOpacity:] 无法识别的选择器
【发布时间】:2012-02-23 23:07:59
【问题描述】:

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 方法,但是出现错误...

如何淡入和淡出 CCLayer? (不透明动画,CCFadeIn 和 CCFadeOut)

【问题讨论】:

  • 您是否在 PopupScene 实现中添加了 setOpacity/opacity 方法的定义。因为您将需要实现该协议。从哪里调用 setOpacity 方法或从系统库调用它?
  • @ChangUZ :刚刚添加了更多关于你的信息,你可以设置不透明度。我的错,直到今天才知道这个子类。

标签: iphone cocos2d-iphone cclayer


【解决方案1】:

CCLayer 没有实现该协议(查看 CCLayer.h)。如果您“真的”需要在图层上设置透明度,则必须手动进行(正如@Ravin 建议的那样)。基本上声明并实现一个 setOpacity 方法,并在该方法中执行您认为必须执行的操作来设置图层的不透明度。如果您的层嵌入了叠加的 sprite 和其他未实现协议的对象,您可能会发现获得您尝试完成的结果可能会很棘手。

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

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

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

不透明度

RGB 颜色

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多