Попытка изменить цвет частиц, испускаемых моим SKEmitterNode, изнутри кода

У меня есть приложение, в котором пользователь может редактировать узел эмиттера и сделать снимок экрана в библиотеку фотографий. В настройках, где они могут изменить вещи, как рождаемость, угол, т. Д. Я разрешаю им менять цвет узла эмиттера.

Я использую:

node.particleColor = [SKColor redColor];

и это не меняет цвет частиц.

Однако, когда я добавил NSLog заявления к нему и спросил, что node.particleColor это было возвращено 1 0 0 1, чего я и ожидал, но узел никогда не меняет цвет.

Любые идеи относительно того, что я могу сделать, чтобы изменить его цвет?

2 ответа

Эй, я думаю, я только что понял эту проблему. Не уверен, если ваш код отличается, однако.

Для меня у меня есть SKEmitterNode, созданный так

SKEmitterNode *explosion = [NSKeyedUnarchiver
                                        unarchiveObjectWithFile:[[NSBundle mainBundle]
                                        pathForResource:@"Explosion" ofType:@"sks"]];

затем, чтобы изменить его цвет, я делаю это

explosion.particleColor = [SKColor redColor];

Затем я устанавливаю коэффициент смешивания на 1

explosion.particleColorBlendFactor = 1.0;

и, наконец, я превращаю последовательность цветов в ноль (это была сложная часть)

explosion.particleColorSequence = nil;

Превращая цветовую последовательность в ноль, он больше не игнорирует цвет частицы. Не уверен, почему изначально он не был установлен на ноль, как говорится в ссылке, но это то, что исправило это для меня. Надеюсь это поможет!

Вы должны установить colorBlendFactor а также смешать заданный цвет с текстурой частиц:

node.colorBlendFactor = 1.0;
Другие вопросы по тегам