versiones tipos programación programacion polimorfismo objective los lenguajes lenguaje introduccion ecured datos caracteristicas básicos objective-c core-animation cocos2d-iphone

objective c - tipos - Objetivo C Animación de iPad con imágenes grandes: ¿qué método usar?



tipos de datos de lenguaje básicos de los lenguajes de programación c++ objective c swift (2)

Intento crear una aplicación meteorológica en el iPad, pero parece que necesito ayuda en la animación. Digamos que estoy animando un Radar, por lo que los archivos fuente del radar tienen 10 imágenes gif / jpeg en tamaño de 900x700 píxeles. Probé la técnica de animación UIImage usando el tutorial aquí:

http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/

pero parece que cargar 10 imágenes tan grandes es demasiado para que lo maneje el iPad y se cuelga debido a las advertencias de memoria. Estoy investigando otras técnicas para animar, pero parece que no puedo encontrar algo que lo haga de manera eficiente.

Miré a otros como Core Animation usando sprites y Cocos2D con sprites. ¿Alguien puede apuntar en la dirección correcta la mejor manera de animar estas imágenes grandes? (tenga en cuenta que estas imágenes son dinámicas y cambian con frecuencia, por lo que los sprites deberán recrearse en un servidor y buscarse en el iPad para realizar la animación). Gracias


Intente dividir la imagen de la animación en partes más pequeñas y animarlas en lugar de tratar cada componente como sprites. Sería mejor si usa principalmente código (CoreGraphics) y dibuje su radar "a mano" en lugar de usar imágenes como si fueran GIF animados.


OpenGL solo crea texturas con dimensiones a potencias de 2. En el caso de sus imágenes, eso es 1024x1024, que es un mego de memoria por imagen. Aún así, eso no debería ser un problema con el iPad.

En primer lugar, investigue utilizando las herramientas de creación de perfiles de Xcode para asegurarse de que las imágenes no se carguen repetidamente en la memoria en cada ciclo de la animación (probablemente por medio de objetos nuevos que no comparten texturas en caché). Eso podría resolver su problema desde el principio.

En segundo lugar, recomiendo usar Cocos2D solo para facilitar el manejo de las texturas y el almacenamiento en caché. Mezcle las imágenes en una CCAnimation, estacione en un CCRepeatForever, ejecútelo con CCSequence. Cuando termines, pulsa CCTextureCache para liberar las texturas no utilizadas.

En tercer lugar, baje la velocidad de cuadros de su animación a 30 o menos (solo para esta animación). Puede ser el iPad, pero estás haciendo una aplicación de clima. No es un videojuego

Finalmente, reduzca el tamaño de su imagen. Justifica todo lo que quieras, pero una gran animación de radar no venderá tu aplicación. Y solo porque un sitio web ya esté reproduciendo esa animación maravillosamente, recuerde que un escritorio tiene mucha más memoria y poder que cualquier otro teléfono inteligente.