Я еще не нашел ни одной встроенной системы частиц;
Существует несколько «бесплатных» проектов, в которые встроены системы частиц, вы можете посетить это видеоурок для Системы частиц, которая будет более чем достаточно эффективной для удовлетворения потребностей, о которых вы упомянули. Этот способ создания системы частиц в основном такой же, как и в Cocos2d, поэтому посмотрите учебник, а затем загрузите файлы проекта, вы можете легко встроить их Particle Emitter в ваш проект.
Как я могу эффективно использовать эту память?
Я бы порекомендовал вам использовать " Pattern Pool Pattern ", в основном вы предварительно выделяете "Pool" частиц, скажем, 1000 объектов. Затем ваши излучатели, попросите бассейн для частиц, когда они нуждаются в них. Если пул пуст, вы можете управлять делом соответствующим образом. Это может показаться неэффективным с точки зрения памяти, но очень эффективно с точки зрения производительности (чтобы избежать распределения в реальном времени многих мелких объектов, таких как частицы).
Некоторые предложения, когда вы объявляете, что ваша структура частиц пытается быть легкой и выровненной по степеням 2 (это сделает вашу структуру более дружественной к кешу), это 32 байта:
struct Particle
{
CGPoint position;
CGPoint speed;
float life;
float decay;
unsigned short index;
unsigned char color_R;
unsigned char color_G;
unsigned char color_B;
unsigned char color_A;
unsigned char rotation;
};
Но в зависимости от ваших потребностей, это может быть намного меньше, может быть, вам не нужен цвет / индекс / и т.д. Вам придется оценить это самостоятельно.
Наконец, я бы порекомендовал вам взглянуть на класс cocos2d CCParticleSystem
, вы можете скачать код здесь . Их реализация не такая легкая, но она достаточно гибкая и может достигать очень хороших эффектов.
Удачи с вашими частицами:)