Android: Angry Birds Scaling


11

Czy ktoś ma pojęcie, jak skalowanie jest przeprowadzane u wściekłych ptaków? Chcę się upewnić, że moje obrazy / tło zawsze są skalowane, aby pasowały do ​​rozmiaru ekranu, i ta gra wydaje się mieć podobny efekt. Bawiłem się ustawieniami manifestu na ustawianiu preferowanych rozmiarów ekranu, ale muszę jeszcze zduplikować dokładnie to, czego chcę.

Czy są jakieś skuteczne sposoby, aby upewnić się, że twoja gra zawsze wyświetla przestrzeń XY, zmniejszając ją w razie potrzeby w zależności od rozmiaru piksela?

Chcę mieć pewność, że wszystko jest zawsze wyświetlane na ekranie dla wszystkich urządzeń i nie odcinać rzeczy na małych urządzeniach ani dodawać czarnej przestrzeni na dużych urządzeniach.

Obliczam przestrzeń do rysowania, uzyskując rozmiar widoku i używając go jako granic dla moich duszków, ale nie działa to zbyt dobrze.

Odpowiedzi:


6

Aby odpowiedzieć na oryginalne pytanie, Angry Birds używa zwykłej grafiki rastrowej (nie wektorów). Po prostu rozpakuj plik .apk (jest to plik zip) i sam zobacz tekstury.

Angry Birds zdarza się tylko, że uniemożliwia ustawienie współczynnika powiększenia powyżej 1.x, dzięki czemu unika się zwiększania (powiększania) tekstur. Prawdopodobnie używa również mapowania mip OpenGL, aby uniknąć artefaktów zmniejszania (zmniejszania).


Wyjaśnia, dlaczego istnieje / była osobna wersja HD.
Mateusz

4
  1. Użyj grafiki wektorowej . Wektory nie są zdefiniowane przez punkty w przestrzeni (tj. Pojedyncze piksele), są zdefiniowane przez relacje matematyczne i łatwo dostosowują się do mniejszych lub większych widoków.

  2. Nie można na przykład wyświetlić dokładnie tego samego obrazu na ekranie o proporcjach 4: 3 i ekranie o proporcjach 16: 9 bez kompresji lub rozciągania obrazu. Tak więc będziesz musiał odciąć rzeczy na urządzeniach 4: 3, które byłyby wyświetlane na panoramicznych urządzeniach 16: 9. Nie jest to zła rzecz w grze takiej jak Angry Birds, w której użytkownik może przesuwać, aby zobaczyć, czego brakuje.


1

Na platformie Android są:

  • 320 * 240 (1,33)
  • 400 * 240 (1,66)
  • 480 * 320 (1,5)
  • 800 * 480 (1,66)
  • 854 * 480 (1,77)
  • 1024 * 600 (1,71)

Dlatego projektując grę w 2D, musisz o tym pomyśleć. Masz dwa rozwiązania techniczne:

  • wybierz współczynnik (1,66 jest najbardziej rozpowszechniony) i używaj czarnych pasów (jak filmy)
  • Wybierz obwiednię, w której nie można pomniejszyć, i kolejną do powiększenia.

Używam tej metody do Moblox i poziomów lakieru w tych polach. Aby uzyskać najlepszy rendering na większości telefonów, moje ramki ograniczające mają współczynnik 1,66. Przy telefonach o współczynniku 1,33 lub 1,77 nie ma widocznych elementów tła, ale mój poziom zaprojektowałem z wyśrodkowanymi działaniami. Więc graczy to nie obchodzi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.