Opublikowano 29 Marca 20242 l Implementacja obsługi formatu .gif w kliencie gry możesz zastosować do animowanych interfejsów itp. Implementacja 📂 Lokalizacja pliku: 'EterLib -> GrpImage.cpp' 🔎Szukaj Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto ➕Dodaj 📂 Lokalizacja pliku: 'EterLib -> GrpImage.h' 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterLib -> Resource.cpp' 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterLib -> Resource.h' 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterPythonLib -> PythonWindow.cpp' 🔎Szukaj ➕Dodaj 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterPythonLib -> PythonWindow.h' 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterPythonLib -> PythonWindowManager.cpp' 🔎Szukaj ➕Dodaj 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterPythonLib -> PythonWindowManager.h' 🔎Szukaj ➕Dodaj 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'EterPythonLib -> PythonWindowManagerModule.cpp' 🔎Szukaj ➕Dodaj 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'ScriptLib-> Resource.cpp' 🔎Szukaj ➕Dodaj 📂 Lokalizacja pliku: 'UserInterface -> UserInterface.cpp' ➕Dodaj na górze 📂 Lokalizacja pliku: 'root -> ui.py' ➕Doda na dole Przykład użycia Pobieranie Skan
Opublikowano 29 Marca 20242 l Elegancko, przydatne rozwiązanie, czy załadowany plik gif jest automatycznie odtwarzany w pętli? Ułatwi to implementację animowanych elementów. Ps; fajnie gdybyś używał podświetlania składni wybierając język w jakim kod został napisany, będzie bardziej estetycznie, a po za tym sztos poradnik.
Opublikowano 29 Marca 20242 l Autor W dniu 29.03.2024 o 17:29, Sevence napisał(a): Elegancko, przydatne rozwiązanie, czy załadowany plik gif jest automatycznie odtwarzany w pętli? Ułatwi to implementację animowanych elementów. Ps; fajnie gdybyś używał podświetlania składni wybierając język w jakim kod został napisany, będzie bardziej estetycznie, a po za tym sztos poradnik. Po załadowaniu pliku GIF, nie ma domyślnego automatycznego odtwarzania w pętli. Aby osiągnąć to zachowanie, konieczne będzie dodanie kodu obsługującego pętlę odtwarzania animacji w klasie CGifImageBox. Możliwe jest także dodanie metod do sterowania odtwarzaniem animacji, takich jak Play, Pause i Stop. Dodatkowo, można dodać parametr do metody LoadGif, aby umożliwić kontrolę nad pętlą odtwarzania, na przykład bool loop = true, który domyślnie byłby ustawiony na true. jest to jednorazowe wywolanie gifa ale mozna cos z tym pokminic np loga gildi animowane czy logo serwera przy logowaniu na przezroczystym tle zamiast miliona obrazkow udających animacje jak ma wiekszosc serwerów. Kod z turka aczkolwiek działa i nie zamula clienta loadem obrazków Edytowane 29 Marca 20242 l przez Sasori
Opublikowano 18 Lipca 20241 r W dniu 29.03.2024 o 17:46, Sasori napisał(a): Po załadowaniu pliku GIF, nie ma domyślnego automatycznego odtwarzania w pętli. Aby osiągnąć to zachowanie, konieczne będzie dodanie kodu obsługującego pętlę odtwarzania animacji w klasie CGifImageBox. Możliwe jest także dodanie metod do sterowania odtwarzaniem animacji, takich jak Play, Pause i Stop. Dodatkowo, można dodać parametr do metody LoadGif, aby umożliwić kontrolę nad pętlą odtwarzania, na przykład bool loop = true, który domyślnie byłby ustawiony na true. jest to jednorazowe wywolanie gifa ale mozna cos z tym pokminic np loga gildi animowane czy logo serwera przy logowaniu na przezroczystym tle zamiast miliona obrazkow udających animacje jak ma wiekszosc serwerów. Kod z turka aczkolwiek działa i nie zamula clienta loadem obrazków Właśnie, że domyślnie obrazek jest odtwarzany w pętli, bo klasa CGifImageBox dziedziczy po klasie CAniImageBox. Wystarczy zwrócić uwagę na metodę CAniImageBox::OnUpdate() w której jest iteracja po klatkach przy użyciu pola m_bycurIndex, które po osiągnięciu maksymalnego indeksu wraca z powrotem do 0, a dokładniej w tym miejscu: CKod został skopiowany ++m_bycurIndex; if (m_bycurIndex >= m_ImageVector.size()) { m_bycurIndex = 0; OnEndFrame(); } A zatem jeśli ktoś potrzebuje to może sobie dopisać funkcję do pojedynczego odtworzenia animacji, do zatrzymania po X czasie lub do wznowienia animacji. Warto dodać, że to rozwiązanie nie działa na spakowane gify. Gif będzie wyświetlony tylko w momencie gdy będzie on luźno wrzucony do klienta. W przeciwnym wypadku dostaniemy informację zwrotną w postaci błędu podczas wczytywania gifa
Opublikowano 30 Marca 20251 r W dniu 18.07.2024 o 09:25, KoYGeR napisał(a):Właśnie, że domyślnie obrazek jest odtwarzany w pętli, bo klasa CGifImageBox dziedziczy po klasie CAniImageBox. Wystarczy zwrócić uwagę na metodę CAniImageBox::OnUpdate() w której jest iteracja po klatkach przy użyciu pola m_bycurIndex, które po osiągnięciu maksymalnego indeksu wraca z powrotem do 0, a dokładniej w tym miejscu:CKod został skopiowany ++m_bycurIndex; if (m_bycurIndex >= m_ImageVector.size()) { m_bycurIndex = 0; OnEndFrame(); } A zatem jeśli ktoś potrzebuje to może sobie dopisać funkcję do pojedynczego odtworzenia animacji, do zatrzymania po X czasie lub do wznowienia animacji. Warto dodać, że to rozwiązanie nie działa na spakowane gify. Gif będzie wyświetlony tylko w momencie gdy będzie on luźno wrzucony do klienta. W przeciwnym wypadku dostaniemy informację zwrotną w postaci błędu podczas wczytywania gifa+1 dzięki!
Opublikowano 30 Marca 20251 r W dniu 30.03.2025 o 17:36, Arta napisał(a):+1 dzięki!ta ja też dziękuje, podwójnie za kolegę wyżej.
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto