2012-06-09 17 views
21

Cocos2d-iphone używa rozszerzenia -hd dla obrazów Retina (i innych zasobów). cocos2d Retina guide mówi tylko ogólnikowo o „pewnych niezgodności” dotyczących @ 2x:Dlaczego użytkownicy cocos2d-iphone powinni unikać używania rozszerzenia @ 2x?

Jabłko wykorzystuje „@ 2x” sufiks, ale Cocos2d nie używać tego rozszerzenia powodu pewnych niezgodności. Zamiast tego, cocos2d ma swój własny przyrostek : "-hd".

OSTRZEŻENIE: NIE zaleca się używania przyrostka "@ 2x". Apple traktuje te obrazy w specjalny sposób, co może powodować błędy w aplikacji cocos2d .

Wielki. Czuję się dobrze poinformowany.

Przez 2-year old bug report regarding @2x otrzymałem link do forum thread that supposedly explains the issues with @2x. Jednak tak się nie dzieje. Jedyne wskazówki, jakie tam znalazłem, to to, że są błędy iOS (4.0/4.1) dotyczące @ 2x, które, jak sądzę, nie są już istotne. Możliwe, że mogłem przegapić jakiś kluczowy aspekt (było trochę gadania o buforowaniu lub problemach z ponownym ładowaniem) - wątek jest bardzo długi.

Chciałbym wiedzieć, jakie konkretne problemy może napotkać deweloper cocos2d, jeśli używa sufiksu @ 2x dla obrazów zamiast -hd?

Proszę podać konkretne przykłady rzeczy, które mogą pójść albo faktycznie będzie źle.

Odpowiedz

7

To wydaje się być głównym powodem, z tego linku: http://www.cocos2d-iphone.org/forum/topic/12026

Konkretnie ten post przez riq:

ja nie wiem, czy initWithContentsOfFile została ustalona, ​​ale w 4.0 był on uszkodzony i to nie działa z rozszerzeniami @ 2x, ~ iphone. imageNamed buforuje wszystkie załadowane pliki, więc zużywa znacznie więcej pamięci niż initWithContentsOfFile Również rozszerzenie @ 2x robi coś (nie wiem dokładnie co), ale nie działa poprawnie z cocos2d.

Kolejny dobry punkt: powrót, gdy iPhone 4 został właśnie wydany z wyświetlaczem Retina, jestem pewien, że niektórzy użytkownicy Cocos2D używali starszej wersji, więc gdy użytkownik używał wyświetlacza siatkówki na wersji Cocos2D, który tego nie obsługiwał, rzeczy były dwa razy większe niż powinny. Znowu to jest teraz naprawione dla większości, chyba że używasz BARDZO wcześnieszej wersji Cocos2D.

Przegląd, więc wydaje się, że głównym problemem było initWithContentsOfFile z iOS 4, ale naprawili to, ponieważ używam tego dokładnego API z Cocos2D 2.0-rc2 w mojej aplikacji i nie mam żadnych problemów. Używam wszystkich rozszerzeń określonych dla Apple i wszystko działa dobrze! :)

+0

Dzięki, w końcu trochę wyjaśnienia! Chociaż "nie działa poprawnie z cocos2d" nadal wydaje mi się trochę niejasne. Ale to prawdopodobnie tylko ja. :) – LearnCocos2D

+0

Czy moja odpowiedź zasługuje na nagrodę? : P Przysięgam, że to wszystkie informacje na ten temat! –

7

Wygląda na to, że ma historyczne tło.

Co sprawia, że ​​używanie grafiki -hd jest opłacalne, to że ładowanie ich nie opiera się na funkcjonalności Apple, ale raczej odbywa się w kodzie źródłowym. Można go załadować na iPada w trybie symulatora iPhone'a i użyć obrazów o wyższej rozdzielczości w trybie 2x.

Poza tym nie mogłem znaleźć więcej powodów, dla których nie używałbym @ 2x, gdy patrzyłem na to tydzień temu.

Jeśli chcesz uzyskać wszystkie szczegóły, najlepiej wyślij wiadomość e-mail z riq.