Попытка изменить цвет частиц, испускаемых моим 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;