Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Изменить цвет всего на экране - Cocos2d

Автор вопроса: JonathanОтветов: 1

У меня есть кнопка/метод паузы (не самый лучший, но работает). В настоящее время я меняю непрозрачность ВСЕГО на экране, когда он приостановлен, что не то, что я хочу делать, но это работает (и это боль). У кого-нибудь есть лучший способ изменить яркость всего на экране одновременно?

НАПРИМЕР. когда вы ставите на паузу "Angry Birds" (единственная игра, о которой я мог думать в данный момент), на основной сцене появляется прозрачное черное наложение.

Вот мой код

-(void) Pause:(ccTime)delta
{
    Bag.opacity = 150;
    ScoreH.opacity = 150;
    TimerH.opacity = 150;
    leftB.opacity = 150;
    rightB.opacity = 150;
    bg.opacity = 150;
    scoreLabel.opacity = 150;
    timeLabel.opacity = 150;

    [[CCDirector sharedDirector] pause];

    CCLOG(@"Game Paused");
}

Кроме того, большинство моих спрайтов берутся из листов спрайтов. Я не знаю, поможет ли это. Любая помощь приветствуется. Заранее спасибо!

Вау... Я искал ответ на этот вопрос около месяца, и СРАЗУ после того, как я задал этот вопрос, я решил поискать его снова и... я нашел его.

Прошу простить мою глупость...

CCLayerColor* colorLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 100)];
[self addChild:colorLayer z:0];

Первые три числа обозначают цвета "RBG", а последнее число - непрозрачность.

  • Разве не было бы достаточно наложить на все наложение и анимировать его альфа-канал от 0,0 до 1,0 и просто выбрать белый цвет? Или черный? Nick Weaver 08.05.2011
  • Это хорошая идея, но CCLayerColor отлично работает и может быть легко скрыт с помощью colorLayer.visible = NO;. Он также имеет возможность изменить непрозрачность. Jonathan 08.05.2011
  • А, вижу, очень хорошо. Пожалуйста, опубликуйте свое решение в качестве ответа и примите его для себя в течение 24 часов. Nick Weaver 08.05.2011
  • Я буду. Спасибо за быстрый ответ в начале Jonathan 08.05.2011

iphonecocos2d-iphone

Ответы

Ответ 1 · рейтинг 6 · Jonathan

Чтобы поместить наложение цвета поверх слоя, просто добавьте ..

CCLayerColor* colorLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 128)];
[self addChild:colorLayer z:0];

Первые три числа обозначают цвета "RGB", а последнее число - непрозрачность. Каждый может иметь значение в диапазоне от 0 до 255.

E.G.

layerWithColor:ccc4(Red, Green, Blue, Opacity)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы