2012-06-09 9 views
21

Cocos2d-iphone usa la extensión -hd para imágenes Retina (y otros recursos). El cocos2d Retina guide habla vagamente de "algunas incompatibilidades" con respecto a @ 2x:¿Por qué los usuarios de cocos2d-iphone deben evitar usar la extensión de archivo @ 2x?

Apple utiliza el sufijo “@ 2x”, pero cocos2d no utiliza esa extensión debido a algunas incompatibilidades. En cambio, cocos2d tiene su propio sufijo : "-hd".

ADVERTENCIA: NO se recomienda el uso del sufijo "@ 2x". Apple trata esas imágenes de una manera especial que podría causar errores en su aplicación cocos2d .

Genial. Me siento bien informado.

A través de un 2-year old bug report regarding @2x Obtuve el enlace a un forum thread that supposedly explains the issues with @2x. Sin embargo, no es así. Las únicas pistas que encontré allí son errores iOS (4.0/4.1) con respecto a @ 2x, que supongo que ya no son relevantes. Es posible que haya pasado por alto algún aspecto crucial (se habló de almacenar en caché o repetir problemas de carga): el hilo es muy largo después de todo.

Me gustaría saber qué problemas específicos podría encontrar un desarrollador de cocos2d si usa el sufijo @ 2x para imágenes en lugar de -hd?

Por favor, brinde ejemplos concretos de cosas que podrían ir o en realidad estarían equivocadas.

Respuesta

7

Ésta parece ser la razón principal de este enlace: http://www.cocos2d-iphone.org/forum/topic/12026

Específicamente este mensaje por riq:

No sé si initWithContentsOfFile era fijo, pero en 4.0 que estaba rota y se no funcionaba con @ 2x, ~ extensiones de iphone. imageNamed almacena en caché todos los archivos cargados, por lo que consume mucha más memoria que initWithContentsOfFile También la extensión @ 2x hace algo (no sé exactamente qué) pero no funciona bien con cocos2d.

Otro punto positivo: Antes, cuando el iPhone 4 se acaba de publicar con la pantalla retina, estoy seguro de que algunos usuarios de Cocos2D estaban utilizando una versión anterior del mismo modo que cuando el usuario estaba usando la pantalla de la retina en una versión de Cocos2D que no lo soportaba, las cosas eran el doble de lo que deberían haber sido. De nuevo, esto está ahora fijado a la mayoría a menos que esté usando una versión MUY temprana de Cocos2D.

Descripción general, así que parece que el problema principal fue con initWithContentsOfFile de iOS 4, pero lo han solucionado porque yo uso esa API exacta con Cocos2D 2.0-rc2 en mi aplicación y no tengo ningún problema. ¡Utilizo todas las extensiones especificadas de Apple para las imágenes y todo funciona muy bien! :)

+0

Gracias, finalmente, algunas aclaraciones! Aunque "does not work OK with cocos2d" todavía me parece un poco vago. Pero probablemente sea solo yo. :) – LearnCocos2D

+0

¿Mi respuesta es digna de la recompensa? : P ¡Juro que es toda la información que hay sobre este tema! –

7

Parece que tiene antecedentes históricos.

Lo que hace que el uso de gráficos -hd aún valga la pena es que cargarlos no depende de la funcionalidad de Apple sino que se realiza en código de framework. So -hd se puede cargar para iPads en el modo simulador de iPhone y hacer uso de las imágenes de mayor resolución en el modo 2x.

Aparte de eso, no pude encontrar más razones para no usar @ 2x cuando estaba investigando esto hace una semana.

En caso de que desee conocer todos los detalles, probablemente sea mejor dejar un mensaje de correo electrónico.

Cuestiones relacionadas