GDX TexturePacker GUI to narzędzie, które będziemy wykorzystywać do tworzenia mapy grafik, których użyjemy w dalszych pracach nad UWar. Dokładniej program ten z wielu grafik tworzy jeden plik graficzny oraz plik o rozszerzeniu .pack, który zawiera informacje związane z każdą dodaną grafiką. Jest to bardzo wygodne rozwiązanie z perspektywy zarządzania pamięcią. Dzięki temu unikamy wycieku pamięci.
GDX TexturePacker GUI w użyciu
Zaprezentuję na przykładowych plikach graficznych jak działa program, który możemy pobrać z tej strony. Po uruchomieniu, naszym oczom ukaże się okienko z wieloma opcjami.
Tworzymy nową paczkę klikając New pack i nadając jej nazwę. Następnie podajemy ścieżkę do plików z jakich chcemy utworzyć nową mapę – Input directory oraz ścieżkę, gdzie mają zostać wyeksportowane nowo utworzone pliki – Output directory.
Po uzupełnieniu danych powinniśmy mieć tak wyglądające okienko.
Klikamy Pack’em all i czekamy, aż proces tworzenia zostanie zakończony – pozostaniemy o tym poinformowani komunikatem jak poniżej.
Po zamknięciu okienka z informacją o przebiegu procesu, zobaczymy po prawej stronie podgląd wygenerowanej mapy.
Wygenerowany plik graficzny
Poza plikiem graficznym, został również wygenerowany plik z rozszerzeniem .pack, który przechowuje informacje o poszczególnych grafikach. Dzięki temu plikowi, będziemy odwoływać się do grafik w naszym projekcie dzięki nazw.
Wygenerowany plik test.pack
input1.png format: RGBA8888 filter: Nearest,Nearest repeat: none test02 (non POT) rotate: false xy: 2, 2 size: 300, 300 orig: 300, 300 offset: 0, 0 index: -1 test03 (multi shapes) rotate: false xy: 304, 2 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1 test01 rotate: false xy: 562, 2 size: 256, 256 orig: 256, 256 offset: 0, 0 index: -1Jak widzimy pierwsza linijka tego pliku przechowuje nazwę wygenerowanego pliku graficznego. Kolejne format w jakim została wygenerowana mapa, filtry jakie zostały użyte oraz czy została włączona powtarzalność.
Następnie przechodzimy do informacji o każdym pliku z osobna. Nie trudno rozczytać, iż pierwsza linijka odpowiada za określenie pozycji początkowej, a kolejna to rozmiar.
Ten plik będziemy ładować przy inicjalizacji specjalnej klasy, obsługującej tak wygenerowane mapy, ale o tym już w kolejnym wpisie.
Podsumowanie
Ten wpis wprowadza nas na kolejny etap w tworzeniu grafiki dla naszej gry. Moglibyśmy dodawać grafiki jedna po drugiej, ale taki sposób jest mniej wygodny, trzeba pamiętać, o usunięciu każdej grafiki, inaczej nastąpi wyciek pamięci. Chciałbym również podziękować Krzysztofowi Owsianyemu za komentarz, w którym podpowiedział to rozwiązanie. To bardzo ułatwi nam pracę z wieloma teksturami i zoptymalizuje ilość linijek potrzebnych do stworzenia całej grafiki.
Pozdrawiam,
sirmarbug