Я разрабатываю свой собственный движок системы частиц, это для учебных целей, я действительно не хочу использовать существующий движок.
Прямо сейчас я сгенерировал красивые частицы, но я хочу развернуть движок, чтобы упростить работу с ними.
Я думал о классе "Particle System",
этот класс будет содержать следующие ссылки:
particleList: список частиц, которые составляют систему.
systemEmitter: системный эмиттер для частиц, класс эмиттера должен иметь возможность выполнять несколько методов излучения частиц, например, излучать из линий, точек, случайным образом испускающих из многоугольника. Также этот класс должен выполнять управление выбросами, например, излучать в направлении точки, вдали от точки, в направлении и времени, чтобы испускать.
particleController: управляет, например, вращением вокруг точки, переменными размерами частиц, цветами различных частиц, областями вокруг системы, с которыми частицы реагируют по-разному, обнаружением столкновения (с другими объектами или внутри частиц, если это становится необходимым).
Particle Renderer: отвечает за рисование этой системы, переменные типы смешивания, текстуры частиц, типы частиц, такие как треугольники, круги, пользовательские...
Эти четыре элемента будут составлять класс частиц частиц. Некоторым FX может потребоваться более одной системы частиц, например Fire FX, может использовать одну систему для огня, одну систему для дыма и одну систему для искры.
Это то, что я имею в виду, но мне очень хотелось бы знать, хорошо ли этот подход к дизайну, или если вы видите, что я что-то упускаю или могу/должен делать что-то другое. Я не думал о каком-то простом способе "сэкономить" FX, например, о том, как лучше всего сказать мой движок, "нарисовать огонь", "привлечь взрыв", "рисовать фонтан" и т.д., Возможно, хранить информацию об FX в xml файлах будет хорошей идеей и т.д.
Мнения действительно приветствуются, и, как я уже говорил, я действительно хочу построить это, вместо использования другого движка, для изучения причин.