Как сделать анимацию, как всплывающие сердечки Periscope?

Мне нужно сделать ту же анимацию, что и в приложении Periscope, пока пользователь отправляет сердце. Сердца лопаются от прикосновения и перемещаются случайным образом, исчезают и в конечном итоге исчезают. Каждое прикосновение генерирует ровно одну частицу (в данном случае сердце). Чем быстрее пользователь прикасается, тем больше появляется сердечек.

Именно так :

введите здесь описание изображения

Я пробовал CAEmitterLayer, но эмиттер будет испускать частицы с birthrate, нет возможности детально контролировать испускание частиц.

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


person NSPratik    schedule 15.09.2015    source источник
comment
пожалуйста, проголосуйте, чтобы восстановить мой ответ @eric-aya, david-makogon, диппы, возможно, не заметили, что это был принятый ответ.   -  person ishandutta2007    schedule 21.07.2017
comment
Да, этот ответ не следует удалять.   -  person NSPratik    schedule 21.07.2017
comment
Ссылки, предложенные @ishandutta2007, были этой и этот. Этот ответ, вероятно, был удален, поскольку он по сути является только ссылкой - мы просим, ​​чтобы ответы были расширены на переполнение стека.   -  person halfer    schedule 06.04.2018


Ответы (1)


Насколько я знаю, невозможно заставить CAEmitterLayer делать то, что вы хотите.

Но, как я это вижу, у вас есть два варианта: вы можете создавать излучатель каждый раз, когда пользователь нажимает на экран, который будет испускать только одну частицу со случайным ускорением и направлением (это не очень эффективно, но быстро кодируется). ), или сделать все самому: создать один спрайт каждый раз, когда пользователь тапает по экрану, сохранить его позицию, направление, скорость и поворот в матрице, модифицировать их в методе update() и затем перерисовать каждый спрайт.

Надеюсь, по крайней мере, я смог дать вам идею для продолжения вашей работы.

person RoberRM    schedule 30.09.2015
comment
Не за что. И да, пожалуйста, дайте мне знать, какой вариант лучше всего подходит для вас. :) - person RoberRM; 01.10.2015