CCLayer <CCRGBAProtocol>setOpacity:] нераспознанный селектор - PullRequest
0 голосов
/ 22 февраля 2012

PopuupScene Layer

@interface PopupScene : CCLayer <CCRGBAProtocol>

Сообщение об ошибке

22 февраля 11:06:31 unknown MyProject [443]:- [PopupScene setOpacity:]: нераспознанный селектор отправлен в экземпляр 0xa68ca80 22 февраля 11:06:31 неизвестно MyProject [443]: * Завершение работы приложения из-за невыполненного исключения «NSInvalidArgumentException», причина: '- [PopupScene setOpacity:]: нераспознанный селектор отправлен в экземпляр

CCRGBAProtocol имеет метод setOpacity, но произошла ошибка ...

Как можно добавить и исчезнуть CCLayer?(анимация непрозрачности, CCFadeIn и CCFadeOut)

1 Ответ

0 голосов
/ 22 февраля 2012

CCLayer не реализует этот протокол (см. CCLayer.h).Если вам «действительно» нужно установить прозрачность на слое, вам придется делать это вручную (как предлагает @Ravin).В основном объявляйте и реализуйте метод setOpacity, и в этом методе делайте то, что, по вашему мнению, должно быть сделано, чтобы установить непрозрачность слоя.Вы можете обнаружить, что может быть сложно получить результат, который вы пытаетесь достичь, если ваш слой встраивает наложенные спрайты и другие объекты, которые не реализуют протокол.

Я только что обнаружил (urghhh), что если вы используете cocos2dверсии 1.0.1, существует

CCLayerColor - это подкласс CCLayer, который реализует протокол CCRGBAProtocol.

Все функции из CCLayer действительны, а также следующие новые функции:

Непрозрачность

Цвета RGB

...