Przejdź do treści

Animacje ​

Animacje pozwalają dodawać gotowe monochromatyczne animacje klatkowe do ekranów wbudowanych bez rysowania każdej klatki ręcznie. Są dostępne dla platform, które potrafią generować kod odtwarzania animacji.

Dodawanie animacji ​

Wybierz narzędzie Obraz i wybierz Animacja. Lopaka otwiera przeglądarkę animacji z kartami kategorii, polem wyszukiwania, kontrolkami rozmiaru i kontrolkami szczegółowości. Jeśli aktywna platforma nie obsługuje generowania kodu animacji, opcja Animacja jest ukryta.

Użyj kart kategorii, aby przeglądać wbudowany zestaw animacji, albo wpisz w polu wyszukiwania, aby filtrować animacje po nazwie we wszystkich kategoriach. Podczas wyszukiwania widoczne pozostają tylko kategorie z pasującymi animacjami. Najedź na miniaturę, aby wyświetlić podgląd ruchu przed umieszczeniem.

Kliknij animację, aby dodać ją na środek obszaru rysowania. Lopaka tworzy warstwę animacji nazwaną od animacji, wybranego rozmiaru i liczby klatek, na przykład sun-weather 48x48 14f.

Rozmiar i szczegółowość ​

Kontrolka rozmiaru wybiera wymiary klatki: 32 x 32, 48 x 48 lub 64 x 64 piksele. Większe rozmiary są łatwiejsze do odczytania na wyświetlaczu, ale wymagają więcej danych oprogramowania układowego.

Kontrolka szczegółowości wybiera, ile klatek zostaje zachowanych z animacji źródłowej:

SzczegółowośćKlatkiKiedy używać
Wysoka28Najpłynniejszy ruch, gdy pozwala na to miejsce w pamięci flash
Średnia14Równowaga między ruchem a rozmiarem kodu
Niska7Najmniejsze dane wyjściowe, gdy pamięci jest mało

Przeglądarka pokazuje szacowany rozmiar danych oprogramowania układowego dla wybranego rozmiaru i szczegółowości. Użyj tego oszacowania przed umieszczeniem dużych animacji, zwłaszcza na małych urządzeniach monochromatycznych.

Lopaka zapamiętuje ostatnio wybrany rozmiar i szczegółowość, więc ponowne otwarcie przeglądarki animacji zachowuje te same ustawienia.

Importowanie wideo ​

Wybierz narzędzie Obraz, wybierz Prześlij plik i wczytaj jeden film MP4, MOV lub WebM. Wybierz rozmiar klatki, ustawienia przetwarzania i wyjściową liczbę klatek na sekundę, a następnie wybierz Otwórz edytor, aby utworzyć jedną warstwę animacji. Zobacz Importowanie obrazów, aby poznać formaty wideo i limity.

Zachowanie na obszarze rysowania ​

Warstwa animacji zachowuje się jak normalna warstwa pod względem pozycjonowania, kolejności, zaznaczania i usuwania. Gdy warstwa nie jest zaznaczona, obszar rysowania pokazuje jej pierwszą klatkę jako statyczną bitmapę. Gdy zaznaczysz warstwę, Lopaka odtwarza podgląd animacji z zamierzonym taktowaniem.

Odznaczenie warstwy zatrzymuje odtwarzanie i wraca do pierwszej klatki. Dzięki temu edytor pozostaje spokojny, a jednocześnie możesz sprawdzić animację w kontekście.

Wygenerowany kod ​

Warstwy animacji generują dane klatek oraz logikę odtwarzania. Dokładne dane wyjściowe zależą od platformy i od ustawienia kodu Uwzględnij animację.

Gdy Uwzględnij animację jest włączone, Lopaka generuje kod pomocniczy, który z czasem przesuwa klatki. Wygenerowana funkcja pomocnicza updateAnimations() śledzi upływający czas i aktualizuje bieżącą klatkę każdej animacji przy użyciu jej opóźnienia. Platformy grupujące rysowanie animacji otrzymują też funkcję pomocniczą drawAnimations(), która wywołuje updateAnimations() i rysuje każdą animację w jej bieżącej klatce.

W szablonie Arduino (C++) dla AdafruitGFX, ArduinoGFX i TFT_eSPI Lopaka dodaje funkcję loop(), która wywołuje funkcję pomocniczą rysowania animacji, dzięki czemu skopiowane szkice mogą odtwarzać od razu po konfiguracji, a klatki są taktowane za pomocą millis(). Ich szablon ESP-IDF (C++) nie generuje setup() / loop(): klatki są taktowane za pomocą esp_timer_get_time(), a drawAnimations() wywołujesz z własnej pętli zadania. W danych wyjściowych U8g2 wygenerowana pętla aktualizuje klatki animacji przed uruchomieniem pętli obrazu U8g2 firstPage() / nextPage(). W danych wyjściowych U8g2 dla ESP-IDF Lopaka utrzymuje kod jako osadzalny i nie tworzy za ciebie funkcji app_main(). Dane wyjściowe Flippera używają czasu pracy systemu, aby wybrać bieżącą klatkę każdej animacji, i zawierają pętlę żądającą ponownego rysowania viewportu.

Jeśli ekran zawiera warstwy statyczne wokół animacji, Lopaka zachowuje kolejność warstw bez zmian. Na platformach z grupowym rysowaniem drawAnimations() jest wstawiane w miejscu, w którym na stosie pojawia się pierwsza warstwa animacji. W U8g2 warstwy animacji są rysowane bezpośrednio z funkcji rysowania ekranu w kolejności.

Gdy Uwzględnij animację jest wyłączone, dane klatek animacji są osadzane jako statyczne tablice. Lopaka nie generuje dołączeń animacji, updateAnimations(), drawAnimations() ani pętli odtwarzania loop(). Użyj tego trybu, gdy chcesz samodzielnie zarządzać odtwarzaniem.

Pliki animacji ​

Panel Ustawień kodu wyświetla załączniki animacji do pobrania, gdy ekran używa warstw animacji. Pobierz te pliki wraz z wygenerowanym kodem źródłowym i umieść je obok plików szkicu lub projektu, zgodnie z wymaganiami twojej platformy. Załączniki Flippera to nagłówki C z danymi klatek XBM i nie wymagają Arduino ani PROGMEM.

Wygenerowane wywołania rysowania odwołują się do danych klatek animacji po nazwie. Jeśli w projekcie oprogramowania układowego brakuje załącznika, wygenerowany kod się nie skompiluje albo klatki animacji nie będą dostępne w czasie wykonania.