Cocos2d android Problema de textura en Motorola xoom

Estoy desarrollando un juego en android con el framework Cocos2d con la última compilación de github (Weikuan Zhou).

En mi juego, usé muchas imágenes (el tamaño total de las imágenes es de alrededor de 11 MB).

Problema: Estoy recibiendo la caja negra en lugar de imágenes cuando juego mi juego más de 3 veces.

¿Qué pasos reproducirán el problema? 1. Cuando juego mi juego más de 3 veces a través de "Play Again" funcionalidad de mi juego.

cual es la salida esperada? ¿Qué ves en su lugar? – las imágenes deben mostrarse correctamente en lugar de "BLACK BOX" .

Y en mi logcat, veo que la memoria Heap va alrededor de 13Mb.

  • Ya lanzo Textura a través del método de abajo

CCTextureCache.sharedTextureCache (). RemoveAllTextures ();

También traté de eliminar sprite manualmente ex. removeChild() .

Pero hasta ahora no ha logrado encontrar ninguna solución.

Si alguien tiene una solución para esto por favor hágamelo saber.

De lo que usted está describiendo, usted está golpeando exactamente el mismo problema que hice, que es que cocos2d para android es realmente buggy cuando se trata de un montón de sprites individuales cargados individualmente.

La mejor ruta a tomar para resolver este problema es conseguir (a menos que tengas un mac) la versión flash gratis de zwoptex desde aquí http://zwopple.com/zwoptex/static/downloads/zwoptex-flashversion.zip

Esto te dejará construir encima de spritesheets, sugiero relacionar tantos sprites como puedes en cada hoja, mientras que intentaba mantenerlos sensatamente agrupados.

Esto se debe principalmente a los cocos haciendo un solo render para todos los sprites en una hoja de sprites, en lugar de un render por sprite para los sprites normales, por lo tanto redujo enormemente el tiempo de procesamiento y mucho menos uso de memoria.

Usted puede entonces cargar la hoja de sprites con el código tal como (no puede garantizar que este código ejecutará mientras que estoy agarrando fragmentos de un proyecto estructurado pero le conducirá a la solución derecha)

 CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFrames("menus.plist"); // loads the spritesheet into the frame cache CCSpriteSheet menuSpriteSheet = CCSpriteSheet.spriteSheet("menus.png", 20); // loads the spritesheet from the cache ready for use .... // menu is a CCLayer CCSprite sprite = CCSprite.sprite(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("name of sprite from inside spritesheet.png")); menuSpriteSheet.addChild(sprite, 1, 1); / you add the sprite to its spritesheet menu.addChild(menuSpriteSheet, 1); // then add the spritesheet to the layer 

Este problema ocurre al cargar recursos en tiempo de ejecución. Por lo tanto, es mejor cargar recursos antes de que comience la escena. Puede hacer lo siguiente.

  1. Uso de las hojas de sprite para los recursos en su juego.
  2. Implementa tu Ui en el constructor de tu clase.
  3. Implementar su funcionalidad en el método sobreescrito onEnter () en su capa.
  4. Debe descargar las hojas de sprite después de terminar la escena.

Éste es el procedimiento que estoy siguiendo. Gracias.

  • Cocos2D OR libgdx para el desarrollo de juegos Android
  • Tamaño máximo de imagen en el dispositivo Android
  • Error Cocos2d-x al compilar LOCAL_SRC_FILES puntos a un archivo (y carpeta) que falta Windows
  • Cocos2d para Android que soporta diferentes resoluciones
  • Adición de un proyecto Eclipse "Biblioteca Android" y construcción a través de Maven
  • Cómo crear mapa de bits de GlSurfaceView
  • Restaurar el estado del juego en cocos2d-android
  • Error CCGLSurfaceView
  • No se puede crear una instancia del nombre de clase de tipo en cocos2d
  • NoClassDefFoundError en la muestra de Cocos2D
  • Animación de sprites en Cocos2d android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.