Жидкие брызги в SpriteKit - PullRequest
       6

Жидкие брызги в SpriteKit

0 голосов
/ 29 ноября 2018

Скажем, враги определенного типа могут взорваться, а жидкость (кровь / кислота) может поразить близлежащие объекты: игрока, врагов, ящики ...


В Fruit Ninja splatter уходит на задний план,что легко.Здесь речь идет о нескольких сторонах, но не об оси Z, потому что это 2D-игра.


Существует ли простой способ создания случайных брызг жидкости на этом объекте?

1 Ответ

0 голосов
/ 30 ноября 2018

Нет, «легкого пути» не существует, в основном потому, что то, как это будет работать и как это повлияет на игру, не совсем обобщаемо.Например, что означает, что кровь попала в игрока?Это меняет спрайт?Куча слоистых спрайтов?Спрайт-лист?Является ли кровь постоянной или временной?Это накапливается, или это просто "окровавленный или не окровавленный"?Имеет ли значение угол, под которым он попадает в цель?А что, если он не попадет в цель - игроки, проходящие через него, начнут оставлять кровавые следы?И т. Д.

Если вам нужна такая функциональность, вам почти наверняка придется ее кодировать.

Я бы, вероятно, сгенерировал бы кучу похожих на частицы спрайтов сслучайно сгенерированные брызги крови брызгают, отклоняют их от источника и анимируют от источника, используя SKActions или физику.Затем я проверил бы, чтобы они сталкивались с любыми элементами экрана, с которыми я хотел, чтобы они могли взаимодействовать, и когда это произойдет, я убью спрайта и отправлю сообщение тому, кто окровавлен, и сделаю все, что мне нужно, вчтобы отреагировать на это событие, чтобы объект попадания выглядел так, будто он окровавлен, как замена «чистой» таблицы спрайтов на «окровавленную».Если спрайт не ударит что-то до того, как завершит анимацию, я просто оставлю его там, где он приземлится.

Более дешевое и простое решение - просто вызвать кучу частиц крови с использованием частицы SpriteKit.системы, и добавить случайное круглое изображение "всплеска крови" в сцену.Затем вы просто проверяете, находится ли что-либо в этом радиусе, и если да, то называйте это кровавым.Это потребовало бы наличия достаточного количества частиц крови, чтобы все выглядело так, будто все, что находится так близко, будет разбрызгано, но это будет гораздо проще, чем отслеживание отдельных частиц и обнаружение столкновений.

...