Jakież było moje zaskoczenie po uruchomieniu programu, że ten ... delikatnie mówiąc, źle skaluje GUI względem rozdzielczości na ekranie. Właściwie to wcale ponieważ nie pomyślałem że będzie to problemem. Do kompletu nie ładuje się konfiguracja... Efekt poniżej.
| Obrazek dopasujcie wielkością do ekranu telefonów to zrozumiecie w czym problem. |
Przy tak małym GUI do zestawu z aplikacją powinienem dosyłać:
- lupę
- rysik
Brak konfiguracji powoduje, że aplikacja jest całkowicie nieprzydatna.
Walka z kodem i AndroidStudio
Kilka kliknięć później oraz parę godzin surfowania po forach... Konfiguracja ładuje się prawidłowo ale dalej jest brzydko.
| Fajnie, konfiguracja się załadowała, tyle że litery są tak małe że nie da się w nią niemal kliknąć. |
Wybór postaci dwuprofesyjnej jest prawie niemożliwy bo odpowiadający za to checkbox ma z 10x10 px. Jak już uda się kliknąć na klawisz losowania postaci samo przejście na zakładkę z cechami jest sporym wyzwaniem. Podgląd okienka bazy parametrów, z której tak się cieszyłem w poprzednim poście, jest niewidoczny - zasłania ją opuszek palca...
To jednak przejściowe problemy.
Kamień milowy uważam za osiągnięty! Aplikacja jest na telefonie? Jest. Trochę nieczytelna? No trochę. Wymaga pracy? Taaa i to dużej.
Godot C# JSON i AndroidStudio i jak to uruchomić
Teraz będzie trochę programistycznego bełkotu tj. jak wczytać pliki json w apce godot do androida. A jak w ogóle się wyeksportować to znajdziecie multum tutoriali w sieci.
Naprawienie błędu zamyka się w podpięciu prawidłowej klasy wczytującej zasoby JSON do projektu.
Należy zrezygnować z klasy z C#
string json = File.ReadAllText(filepath);
na godotową klasę FileAccess (implementacja aktualna)
var file = FileAccess.Open(filepath, FileAccess.ModeFlags.Read);
string json = file.GetAsText();
i kolejna sprawa.
Ścieżki do plików json musza wskazywać na zasoby gry, a nie na plik na classpath.
Stąd też zmieniamy:
private const string CONFIG_FILE = "assets/db/config.json";
na
private const string CONFIG_FILE = "res://assets/db/config.json";
I jeśli pliki konfiguracyjne same w sobie wskazują kolejne pliki to ścieżki także powinny zawierać res:. Tak jak poniżej. Oczywiście wskazanie res:// możemy dodać statycznie z poziomu kodu, ale w pliku jest bardziej profesjonalnie ;-)
{
"filepath": "res://assets/db/profession/knights/paladin.json"
},
I tyle. U mnie działa.
Różowo nie jest
Nie przyzwyczaiłem się jeszcze do nowego gui AndroidStudio w efekcie napotkałem problem, który uniemożliwia mi zdalne przeniesienie wyeksportowanej aplikacji do telefonu. Rozwiązaniem jest ręczne wklejanie pliku apk na tel. Znacząco wydłuża to proces sprawdzania czy aplikacja działa.
Drugi problem - i pewnie połączony z powyższym - to brak debuga po uruchomieniu aplikacji na telefonie. Przy moim poprzednim podejściu do androida nie miałem takich problemów, a tym razem robię coś ewidentnie nieprawidłowo. Poczytam... popatrzę i znajdę rozwiązanie.
A i żeby nie było że to całe AndroidStudio to psu na budę w tej mojej zabawie. Poprawnie skonfigurowałem logcata i widzę, że losowanie postaci rzeczywiście ma miejsce na androidzie.
To tyle na dziś.
Brak komentarzy:
Prześlij komentarz
Tu możesz wstawić swój komentarz