2010-07-26 12 views
9

Jakie są niezbędne kroki, aby zaktualizować istniejącą grę 2D opartą na OpenGL ES 1.1 na iPhone'a, aby była kompatybilna z ekranem Retina iPhone 4? Nadal używam klasy Texture2D pochodzącej z wersji próbnej Apple CrashLanding (pobierz).Jak zaktualizować grę 2D dla iPhone'a, aby była zgodna z wyświetlaczem Retina iPhone 4?

Po przeczytaniu Apple's documentation, obejrzeniu wideo WWDC (sesja 134 "Optymalizacja aplikacji iPhone do wyświetlania siatkówki") i przejrzenie Cocos2D przykładowego kodu nadal jestem zdezorientowany.

wierzę, wymagane etapy obejmują:

  • przejściu wysokiej rozdzielczości grafiki (w/"@ 2x" dodatku) do [UIImage imageNamed:@"image.png"]
  • zmianę "contentScaleFactor" od 1,0 do 2,0
  • (gdzie?)
  • uaktualnienie argumentów glOrthof włączenie contentScaleFactor
  • regulującą wielkość glViewport

Należy pamiętać, że jestem stosunkowo nowy w OpenGL.

Dzięki za pomoc!

+1

Tylko dla pewności ... Masz ustawiony glViewport na prawidłowy rozmiar większego ekranu? Jeśli nadal był ustawiony na niski rozmiar, dziwne rzeczy mogłyby się wydarzyć. Upewnij się również, że twoje numery orto są poprawne. – Moncader

Odpowiedz

8

Powinieneś zachować obraz 320x480 i podać obraz 640x960 pod inną nazwą. Załóżmy, że obraz 320x480 nazywa się foo.png, a następnie nazwę 640x960 jeden [email protected].

System automatycznie wybierze wyższą rozdzielczość na iPhone 4, bez żadnych zmian kodu - zakładając, że używasz [UIImage imageNamed:@"foo.png"].

+0

Ok dzięki. Dodatkowa grafika z nazwą @ 2x jest ładowana na iPhone'a 4 (a nie na 3G ... zgodnie z oczekiwaniami). Jednak grafika wysokiej rozdzielczości jest znacznie większa niż ekran na iPhone 4. Myślę, że muszę dostosować contentScaleFactor ... Po prostu nie jestem pewien, gdzie. – MrDatabase

+2

MyUIView.contentScaleFactor jest tym, czego szukasz - ustaw na 2.0 – pop850

+0

Um. Ta odpowiedź nie ma nic wspólnego z pytaniem - dotyczyło to OpenGL. – Jonny

Powiązane problemy