2012-12-07 16 views
5

Tytuł całkiem dobrze mówi. Tworzę aplikację na iOS i jestem na etapie dodawania zasobów artystycznych. Mam 5 tła dla iPhone'a o niskiej rozdzielczości (iPhone 3GS lub niższy), iPhone'a Retina (iPhone 4 lub nowszy), iPhone'a 5, iPada o niskiej rozdzielczości i iPada o wysokiej rozdzielczości.Tworzenie uniwersalnej aplikacji iOS, jak wykrywać wszystkie 5 rozdzielczości?

Jaki jest najlepszy sposób postępowania z tym, które tło zostanie załadowane na podstawie urządzenia?

Czy istnieje również sposób na przetestowanie wszystkich 5 elementów symulatora? Teraz możesz oczywiście testować tylko iPhone'a i iPada.

Jest to również gra i używam cocos2d, jeśli to by miało znaczenie.

Odpowiedz

7

Dla Cocos2d-iPhone, domyślny przyrostki są następujące:

  • dla siatkówki iPhone: image.png
  • Retina iPhone: image-hd.png
  • Non -retina iPad: image-ipad.png
  • Retina iPad: image-ipadhd.png

Uwaga ze strony wiki:

UWAGA: Jest NIE zalecamy korzystanie z „@ 2x” sufiks. Apple traktuje te obrazy w specjalny sposób, który może powodować błędy w aplikacji cocos2d .

Cocos2d automatycznie wykrywa sprzęt i załaduje odpowiedni obraz. Możesz zmienić domyślne sufiksy w AppDelegate.m.

AFAIK nie ma przyrostek dla iPhone 5 zdjęć, dzięki czemu można ręcznie wykryć i załadować niestandardowe ikonki wykrywając wysokość urządzenia:

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) { 
    // code for iPhone 5 
} else { 
    // code for all other iOS devices 
} 

I jak mówili inni, można przetestować wszystkie urządzenia poprzez symulator (sprzęt -> urządzenie)

+0

Przy okazji, najlepszym sposobem pracy z tymi wszystkimi obrazami jest narysowanie (lub uzyskanie od projektanta) * -ipadhd tylko obrazów i przekonwertowanie ich na -ipad i -hd za pomocą prostych skryptów lokalnie. –

+0

@anatoliy_v: Format obrazu nie jest taki sam dla iPada i iPhone'a, więc zazwyczaj mój projektant tworzy obrazy zarówno dla iPoda siatkowego, jak i iPhone'a z siatkówką. Następnie używam TexturePackera, aby skalować oba zestawy obrazów dla urządzeń niezwiązanych z siatkówką. – lemikegao

1

Można mieć dwie wersje każdego obrazu

image.png, [email protected]

System automatycznie pobierze [email protected] jeśli jest to urządzenie siatkówki, gdzie zawsze odnosić się do image.png

Również w symulatorze możesz przejść do Hardware-> Device, a następnie wybrać, czy chcesz zobaczyć siatkówkę, czy nie.

+0

Coś specjalnego na iPhone 5? Ponieważ ekran jest dłuższy. Mamy również obraz specyficzny dla tej wielkości. I dzięki. – Oscar

+0

Nie sądzę. Rozmiar ekranu może być większy, ale rozdzielczość nadal jest siatkówką. – Srikanth

1

Jeśli używasz cocos2d, musisz użyć przyrostków -hd na obrazach o rozdzielczości siatkówki. Sprawdź ich wiki page, aby uzyskać więcej informacji na ten temat.

Ja sam nie pracuję z cocos2d, ale z tego dźwięku, rozdzielczość ekranu iPhone'a 5 jest obsługiwana w taki sam sposób, jak obsługiwana jest rozdzielczość ekranu iPada, odpowiednio dostosowując układ. Wyszukiwanie w stackoverflow powinno dać dobre wyniki dla cocos2d i iPhone 5.

2

Jak wspomniałem @Srikanth, włącz image.png & [email protected], a system automatycznie wybierze wyższy res dla wysokiej rozdzielczości ekrany i niższe ekrany o niższej rozdzielczości. Działa to zarówno na iPhonie, jak i iPadzie.

Dla iPhone'a 5, ekran wciąż jest Retina. System automatycznie wybierze twoje - @ 2x obraz. Możesz zdefiniować Auto Układ (lub sprężyny i rozpórki) w Konstruktorze interfejsów lub w kodzie.

Jeśli z jakiegoś powodu konieczny jest obraz specyficzny dla ekranów typu iPhone 5, uważam, że można dodać zdję[email protected], a system automatycznie wybierze to dla ekranów 4-calowych.

Jedynym powodem, dla którego mogę pomyśleć o tym, że w pakiecie znajduje się obraz -568h @ 2x, jest obraz początkowy: potrzebujesz jednego określonego dla ekranów 4-calowych.

Ponadto, o symulatorze: Możesz przetestować wszystkie 5 rozdzielczości. Na pasku menu symulatora (u góry ekranu) wybierz Sprzęt> Urządzenie. Tutaj masz opcję dla wszystkich 5 rozdzielczości.

Powiązane problemy