Можно ли программно изменить цвет текстуры в проекте Spritekit?

Меня интересует, как эффективно изменить оттенок текстуры? Я экспериментирую, чтобы создать космическую пыль, которая будет менять свой цвет каждые несколько секунд с плавным плавным переходом от одного цвета к другому.

Я считаю это возможным несколькими способами:

  • Используя образ ядра, как в этом примере. Но я не знаю, как это будет работать в сочетании со Spritekit...

  • Использование эмиттеров частиц для создания космической пыли и изменения цвета частиц с течением времени с помощью свойства icleColorSequnece.

  • И это было легко, что мне пришло в голову во время игры в Photoshop, в которой используются два одинаковых, но разноцветных изображения, одно поверх другого, и изменяется непрозрачность самого верхнего.

Это дает мне эффект, который я хочу, и на самом деле выглядит потрясающе, но есть ли лучший способ? Может быть, с помощью SKTexture? В этом конкретном случае мне просто нужно перейти с одного цвета на другой, но какой эффективный способ сделать это, когда требуется несколько изменений один за другим? Таким образом, мой третий пример требует дополнительных изображений...

Вот чернила, которые наиболее точно описывают то, что я пытаюсь достичь. Просто посмотрите, как космическая пыль меняет свой цвет с течением времени (с темно-синего на фиолетовый, а затем на зеленый или оранжевый). Я предполагаю, что это сделано программно... Я хотел бы попросить модераторов удалить ссылку, если она не подходит для размещения здесь. Спасибо!

1 ответ

Решение

Это довольно трудный вопрос и довольно субъективный, однако...

Лично я бы использовал подход Emitter Node, потому что кажется, что он создан для того типа использования, который вы ищете, и может иметь некоторые крутые эффекты, отстающие.

С учетом вышесказанного вы специально задали вопрос об изменении оттенка, и colorBlendFactor может быть тем, что вы действительно ищете. У меня нет отличной связи для этого, но это может привести вас в правильном направлении. Вы можете видеть, как они смешивают цвета, чтобы получить желаемый результат.

Ваше решение с изменением альфа-канала двух отдельных цветов также не звучит как плохой подход.

Надеюсь, это поможет и удачи =)

Другие вопросы по тегам