cocos2d iphone - game - CCSpriteBatchNode de Cocos2d quejándose de diferentes identificadores de textura
cocos game creator (1)
Si tienes más de 1 hoja de sprites en tu juego, asegúrate de que no se compartan y framenames, otra alternativa es especificar manualmente la ID de textura.
reemplace su código anterior por:
CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:@"something.png"];
CCSpriteBatchNode* bar = [CCSpriteBatchNode batchNodeWithFile:@"atlas1.png"];
[sprite setTexture:[bar texture]];
[bar addChild: sprite]; // assert error here
La única otra cosa que he descubierto es que a veces el texturecache se borra si tu juego recibe una advertencia de memoria en el delegado de la aplicación, puedes comentarlo, pero ten en cuenta que debes borrar el caché cuando puedas.
Estoy tratando de optimizar mi juego usando CCSpriteBatchNode para renderizar múltiples sprites a la vez. Sin embargo, por alguna razón, cocos2d me está dando este error cuando presento CCSpriteBatchNode como el padre de mis sprites:
"CCSprite is not using the same texture id"
Estoy confundido por esto porque tengo un atlas de texturas único de 1024x1024 con todos mis gráficos. Fue creado con TexturePacker y sin el nodo batch, todo funciona. Lo he estado cargando con esto:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"atlas1.plist"];
Y ahora estoy tratando de usar CCSpriteBatchNode de esta manera:
CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:@"something.png"];
CCSpriteBatchNode* bar = [CCSpriteBatchNode batchNodeWithFile:@"atlas1.png"];
[bar addChild: sprite]; // assert error here
Traté de agregar alguna salida de depuración NSLog al código de inicio / búsqueda de textura cocos2d y, sorprendentemente, hay algunas texturas que se crean con diferentes dimensiones (por ejemplo, 256x256 o incluso más pequeñas). No entiendo cómo puede suceder eso cuando solo tengo una png de 1024x1024 como entrada.
¿Qué esta pasando? ¿Cómo puedo depurar esto?
ACTUALIZAR:
La respuesta de Bongeh me ayudó a solucionar esto, me hizo mirar dos veces a todo. Hubo algunos archivos PNG obsoletos de una versión anterior del juego en mi simulador iOS que se estaban cargando, a pesar de que ya no estaban en el proyecto Xcode. Hacer una carpeta "Limpiar" o incluso "Limpiar compilación" desde Xcode no funcionó, pero usar el comando "Restablecer contenido y configuraciones" del simulador de iOS hizo el truco. ¡Hurra!