
# Добавление своей анимации к эффекту «Анимация»

1. С помощью утилиты [JinxFramer](https://github.com/vvip-68/GyverPanelWiFi/wiki/JinxFramer---%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80-%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8,-%D1%80%D0%BE%D0%BB%D0%B8%D0%BA%D0%BE%D0%B2,-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA) подготовьте кадры анимации и экспортируйте их в файл скетча для включения в проект.  

> Для примера взята анимация "Пятнашки", экспортированная из ролика Jinx! "Fifteens.out" в файл кода ***"fifteens.h"***  
При необходимости после сохранения файла ***"fifteens.h"*** - отредактируйте параметры анимации в структуре типа **animation_t** с именем 
**animation_Fifteens**, размещенной в конце этого файла.

```   
   const animation_t animation_Fifteens PROGMEM = {
     ...
   }
```   

2. Поместите отредактированный файл *"fifteens.h"* с кадрами анимации в папку проекта со скетчем  

3. В файле *a_def_soft.h* (строка примерно 138) в **MAX_IMAGE_NUM** укажите сколько анимаций у вас включено в проект
```
   #define MAX_IMAGE_NUM 4 
```

4. В файле *a_def_soft.h* (строка примерно 55) в **IMAGE_LIST** укажите через запятую название анимаций
```
   #define IMAGE_LIST F("Марио,Пятнашки,Jinx,Погода")
```

5. В файле *animation.ino* - найдите директиву включения файлов анимации в проект (примерно строка 46).  
   Добавьте свой файл с описанием анимации, который был помещен в п.1
```
   ...
   #include "fifteens.h"
   ...
```   

6. В файле *animation.ino* - найдите процедуру ***animationRoutine()*** (строка примерно 190) и добавьте туда вызов анимации  
```
   void animationRoutine() {
     ...
     switch (currentImageIdx) {
     ...
       case 2:
         // Пятнашки
         loadDescriptor(&animation_Fifteens);
         frames_in_image = sizeof(Fifteens_array) / sizeof(Fifteens_array[0]);
         break;
      ...
```	  

7. Чуть ниже в том же файле в процедуре ***animationRoutine()*** (строка примерно 488) найдите похожий фрагмент и добавьте
   код получения следующего кадра анимации
```   
     switch (currentImageIdx) {
     ...
       case 2:
         // Пятнашки
         ppFrame = Fifteens_array[frameNum];
         break;
```

8. Скомпилируйте скетч и загрузите его в микроконтроллер.  
   Добавленная анимация должна появиться в приложении ***WiFiPanel*** на телефоне в эффекте **"Анимация"**, в комбобоксе выбора анимации.

