Необходимо реализовать систему управления частицами на базе статей Система частиц часть 1 и часть 2. Вы можете делать зеленые задачки, если вам прямо совсем сложно дается программирование, и я или Зинаида Андреевна об этом знают.

В остальных случаях вы делаете одно или комбинацию желтых/красных задач. Прикручивание дополнительного функционала горячо приветствуется.

Результат:

  • Проект на гитхабе с адекватной историей коммитов, то есть чтобы по истории было видно, что именно вы делали проект, условно 1 коммит в час

  • Гифка объемом до 10MB, с работой программы (я делаю с помощью https://www.screentogif.com), потом галерею запилю и будем все вместе любоваться. Вот что в прошлом году делали https://aqua.tealeaf.su/gallery.html

1

Реализовать эмиттер который перемещается по окружности, а направление вылета частицы меняется по касательной к окружности.

  • добавить trackbar для управлением радиусом окружности
  • и для управлением скоростью движения эмиттера
  • а также для изменения количества частиц за тик
2

Реализовать управление направленным эмиттером

  • добавить trackbar для изменения направления эмиттера
  • и для градуса распределения частиц
  • и для изменения скорости вылета частиц
  • а также для изменения количества частиц за тик
  • ну и для продолжительности жизни
  • дополнительно выводить количество активных частиц на данный тик
3

Создать птичку из эмиттеров. У птички должны присутствовать

  • Хвост
  • Туловище
  • Крылья
  • Голова

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

4

Реализовать телепорт, попадая в радиус действия которой частицы телепортируются в другую указанную точку.

  • По клику левой кнопки мыши перемещать вход телепорта в точку клика
  • По клику правой кнопки мыши перемещать ВЫХОД телепорта в точку клика
  • (необязательно) Добавить TrackBar для управления радиусом телепорта
  • (необязательно) Добавить TrackBar для управления направлением движения частиц на выходе
5

Реализовать точки перекрашивания частиц, попадая в радиус действия которой частицы меняют свой цвет на цвет указанный у точки.

  • Реализовать раскрашивание, например, снега падающего с неба
  • добавить trackbar с помощью которого можно перемещать точки перекрашивания
  • (необязательно) добавить trackbar с помощью которого можно менять радиус точек перекрашивания
  • (необязательно) добавить кнопочку которая будет переключать палитру
6

Реализовать точку-счетчик частиц, попадая в которую частица умирает, а на точке пишется сколько частиц она уже собрала.

  • при клике мышкой добавлять новый счетчик
  • (необязательно) при клике правой кнопкой мыши, удалять счетчик
  • (необязательно) при увеличении счетчика менять насыщеность цвета счетчика
7

Реализовать области-точки попадая в которые частицы отскакивают в соответствии с правилом угол падения равен углу отражения

  • расположить несколько таких областей
  • привязать одну из областей чтобы она следовала за мышкой
  • (дополнительно) при кручении колесиком мышки изменять размер области
8

Реализовать точку-область а-ля радар

  • все частицы, попадающие в заданную область должны подсвечиваться как-то цветом
  • в центре необходимо писать количество частиц, оказавшихся в зоне действия радара
  • используя колесико мыши менять размеры области
  • (необязательно) вместо одной надписи с количеством частиц, выводить сколько всего маленьких/средних/больших частиц присутствует в области
9

Реализовать debug режим,

  • в котором рисуются вектора скорости каждой частицы
  • добавить кнопочку для остановки симуляции движения частиц
  • добавить кнопочку для пошагового выполнения симуляции
  • добавить trackbar для замедления симуляции
  • при наведении мышки на частицу, выводить ее координаты и значение Life
  • (необязательно) добавить кнопочку которая позволяет выполнять симуляцию в обратную сторону, хотя бы на последние 10 шагов