Jeśli chodzi o interfejs użytkownika w libGDX, okaże się, że jest on bardzo różny od tego, który byłby używany wcześniej (yaml, json, xml, UI Builders itp.).
Układ tabeli - W ten sposób interfejs użytkownika Scene2d ma strukturę i format. Podany link jest świetnym samouczkiem, ale jak już wiesz, potrzebujesz skóry do robienia większości rzeczy.
Skóra LibGDX - składa się z 3 elementów, obrazu w opakowaniu tekstury, pliku z pakietem tekstur i zestawu Json do konfiguracji stylów. Można je również generować programowo, tak jak robisz, ale o wiele łatwiej jest po prostu załadować je z pliku i użyć. Jeśli chcesz dowiedzieć się więcej o tym, jak tworzyć skórki lub edytować je, itp., Kliknij ten link: Skins.
Teraz wróć do wyjątku, który otrzymujesz. Dzieje się tak dlatego, że utworzona przez Ciebie skórka nie zawiera jsona do opisu stylów różnych elementów interfejsu użytkownika. W przypadku powyższego wyjątku etykieta w polu tekstowym nie ma stylu domyślnego.
Co można zrobić, to po prostu użyć szablonu dostarczonego w folderze testy:
- Atlaspack File
- Json File
- Atlaspack Image
- Font Image
- Font File
Umieść te pliki w folderze zasobów projektu android. A następnie można łatwo załadować skórę z jednej linii kodu:
Skin uiSkin = new Skin(Gdx.files.internal("uiskin.json"));
będzie to miało brakujący kawałek informacji, aby Państwa obiekt TextField, a także kilka innych stylów domyślnych:
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: { font: default-font, fontColor: white },
}
Mam nadzieję, że to pomoże Ci zacząć. Istnieje wiele innych drobiazgów, więc nie bój się przejrzeć artykułu Scene2d.UI na wiki, aby uzyskać więcej informacji.
Uwaga: Można użyć gdx-tools
artefakt, aby móc korzystać z the default UI skin out-of-the-box (może być bardzo przydatne dla bardzo małych/prostych zastosowań, do debugowania, gdy jesteś w prawdziwym pośpiechu Widać interfejs użytkownika, itp.).
Wow, dziękuję za wspaniałą odpowiedź :) Jedyne, czego nie mogę tak naprawdę owinąć wokół głowy, to, czym jest ten ostatni fragment kodu? : o – AreusAstarte
@AreusAstarte to json opis stylu, patrz pozycja 2 na liście plików powyżej – noncom
noncom jest poprawne, właśnie wskazałem tę linię json, ponieważ jest to dokładnie ta, która była przyczyną problemów :) – Jyro117