2014-02-17 3 views
1

Возможно ли изменение скорости частиц, уже выпущенных? SKEmitterNode имеет свойство particleSpeed, но это применимо только к частицам, которые будут выпущены в будущем.SKEmitterNode изменяет скорость частиц на уже испущенные частицы

В качестве примера предположим, что мы строим симулятор космического корабля. Представьте себе космический корабль, оказанный над звездным полем. Звездовое поле было создано через файл частиц, полученный с помощью SKEmitterNode. Космический корабль через эту симуляцию никогда не меняет положение. SKEmitterNode состоит из частиц, которые движутся с постоянной скоростью 10 в отрицательном направлении x. Чтобы имитировать ускорение космического корабля, было бы неплохо иметь возможность изменять скорость частиц, которые уже были испусканы. На данный момент, если скорость частиц должна измениться, частицы, уже испущенные, будут двигаться медленнее, чем частицы, которые испускаются после изменения скорости.

Одним из решений является определение системы частиц, которая испускает частицы в диапазоне, например, 100 х 100 с 0 скоростью и 0 ускорением. Эта система частиц будет отображаться с низким значением zPosition, чтобы оставаться в фоновом режиме. Чтобы имитировать движение космического корабля, положение x SKEmitterNode изменилось бы относительно скорости космического корабля. Более SKEmitterNodes добавляются вне сцены, затем прокручиваются вперед, когда старые SKEmitterNodes откатываются и удаляются.

Я тестировал это решение, и оно работает, но мне было любопытно, есть ли у кого-то более элегантное решение.

+0

Насколько я знаю, это невозможно. Из документации: «Sprites Particle находятся в частной собственности Sprite Kit - ваша игра не может получить доступ к сгенерированным спрайтам». - (https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKEmitterNode_Ref/Reference/Reference.html) – DoctorClod

+1

Вы определенно правы, но я надеялся, что SKEmitterNode (владелец этих частиц) может были некоторые варианты для этого типа вещей. Это делает эти системы частиц очень ограниченными в этом отношении. – aust

ответ

0

Возможно, вы создали бы второй SKEmitterNode, который имеет тот же стиль с более высокой скоростью. Затем запустите SKAction или SKAction sequence для перехода между 2.

Смежные вопросы