SKEmitterNode обновляет скорость уже выпущенных частиц

Используя SKEmitterNode в SprikeKit, можно ли изменить скорость/альфа частиц после их высвобождения?

То, что я ищу, - это излучатель частиц, который испускает частицы, эти частицы статичны, но через x секунд они начинают двигаться. Это возможно?


person 0xSina    schedule 27.01.2015    source источник
comment
Мое решение изменить скорость уже cerated частиц: skemitternode изменяет скорость частиц на уже испущенные частицы "> stackoverflow.com/questions/21839325/   -  person Sergey    schedule 11.04.2021


Ответы (1)


Я написал ответ быстро, прежде чем увидел тег Objective-C. Надеюсь, все в порядке.

вот мой файл частиц, чтобы вы могли попробовать сами: СКАЧАТЬ

let emitter = SKEmitterNode(fileNamed: "fire")
emitter.position = CGPoint(x: self.size.width/2, y: self.size.height/2)

let time = CGFloat(2)
emitter.runAction(SKAction.sequence([
    SKAction.waitForDuration(3),
    SKAction.customActionWithDuration(NSTimeInterval(time), actionBlock: {
        _, t in
        let timePercentage = t / time  // percentage of elapsed time
        let maxSpeed = CGFloat(200)
        emitter.particleSpeed = timePercentage * maxSpeed
    })

]))

self.addChild(emitter)

этот код позволит вам анимировать свойства эмиттера с течением времени.

person hamobi    schedule 27.01.2015
comment
Спасибо, но это не изменяет частицы, которые УЖЕ были испущены. - person 0xSina; 27.01.2015
comment
Я узнал ответ. Мне нужно использовать alphaSequence и scaleSequence: stackoverflow. com/questions/27476390/ - person 0xSina; 27.01.2015
comment
Ах хорошо. я неправильно понял - person hamobi; 27.01.2015
comment
это был ваш вопрос (ссылка выше), чей ответ помог мне, так что все равно спасибо! - person 0xSina; 27.01.2015