ze względu na prostotę, załóżmy, że tworzę prostą grę klonów Pong na Androida. Załóżmy, że byłby możliwy do gry tylko w trybie poziomym. (na razie ignoruj kwadratowe telefony).Jak poprawnie skalować grę na Androidzie
Chciałbym, aby gra wyglądała w tej samej skali na każdym telefonie, do tego stopnia, że jeśli zrobiłeś zrzut ekranu z gry na telefonie QVGA i zmieniłeś rozmiar ekranu do rozmiaru WVGA, wyglądałoby to prawie tak samo jak wyglądałaby gra na telefonie WVGA. Innymi słowy, szerokość wiosła powinna zawsze wynosić 1/32 szerokości ekranu, a średnica piłki powinna zawsze wynosić 1/16 szerokości ekranu.
Jaki byłby właściwy sposób na malowanie aplikacji? Byłby uruchamiany w standardowym SurfaceView, który zostałby narysowany na Canvas
.
Załóżmy, że mam PNG o wysokiej rozdzielczości dla wiosła, piłki i czcionki gry (tablica wyników, menu główne).
Czy dowiem rozdzielczości fizycznej, a następnie przeskalować Canvas
poprzez scale(float sx, float sy)
aby wszystkie moje płótna (na QVGA oraz WVGA) mają ten sam wirtualny rozdzielczość , a następnie narysować dokładnie te same prymitywy na każdej pozycji na każdym ekranie rozmiar?
Czy mogę użyć w pikselach pikseli niezależnych od gęstości (dip)?
Jak używać spadków w metodach Canvas, takich jak drawLine()? – Axarydax
OK, zapomnijmy o klanie Ponga i porozmawiajmy o grze opartej na kaflach jak Pac-man lub SimCity. Są więc płytki, które są przechowywane w PNG, a Pong może być zbyt prostym przykładem. – Axarydax