Cómo abordar archivos hd

EDITAR:Después de la primera respuesta, he buscado más en stackoverflow y he reformulado el problema como "¿cómo puedo usar solo archivos hd?" y encontré esto:¿Cómo evito que Cocos2D requiera recursos de definición estándar (imágenes SD)? Ahora probaré la solución propuesta y si funciona, dejaré el título editado y eliminaré la pregunta inicial que pueda ser engañosa.

Es un tiempo que estoy tratando de aprender Cocos2d y usar libros comolibro de cocina yaprender cocos2d. Esos son un gran comienzo, pero a veces me veo atrapado en problemas como el que trataré de explicar hoy.

Comencé a modificar el ejemplo sobre el uso de CCParallaxNode en el libro1 en la página 66. Mi objetivo es agregar cuatro capas del siguiente tamaño: 960 píxeles de alto y 1280 píxeles de ancho en un simulador de iPhone con iOS 5.0 y con la biblioteca Cocos2d 1.01 rc.

Creé un nuevo proyecto usando las plantillas instaladas y modifiqué la clase HelloWorldLayer.m de la siguiente manera:

<code>// Import the interfaces
#import "HelloWorldLayer.h"

// HelloWorldLayer implementation
@implementation HelloWorldLayer
+(CCScene *) scene
{
    // 'scene' is an autorelease object.
    CCScene *scene = [CCScene node];

    // 'layer' is an autorelease object.
    HelloWorldLayer *layer = [HelloWorldLayer node];

    // add layer as a child to scene
    [scene addChild: layer];

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
-(id) init
{
    // always call "super" init
    // Apple recommends to re-assign "self" with the "super" return value
    if( (self=[super init])) {

        CCSprite* parallaxLayer01 = [CCSprite spriteWithFile:@"0-hd-red.png"];  
        CCSprite* parallaxLayer02 = [CCSprite spriteWithFile:@"0-hd-red.png"];
        CCSprite* parallaxLayer03 = [CCSprite spriteWithFile:@"0-hd-red.png"];
        CCSprite* parallaxLayer04 = [CCSprite spriteWithFile:@"0-hd-red.png"];  

        /**
        CCSprite* parallaxLayer01 = [CCSprite spriteWithFile:@"0-hd.png"];  
        CCSprite* parallaxLayer02 = [CCSprite spriteWithFile:@"1-hd.png"];
        CCSprite* parallaxLayer03 = [CCSprite spriteWithFile:@"2-hd.png"];
        CCSprite* parallaxLayer04 = [CCSprite spriteWithFile:@"3-hd.png"];    
      **/

        /**
         CCSprite* parallaxLayer01 = [CCSprite spriteWithFile:@"2-hd.png"]; 
        CCSprite* parallaxLayer02 = [CCSprite spriteWithFile:@"2-hd.png"];
        CCSprite* parallaxLayer03 = [CCSprite spriteWithFile:@"2-hd.png"];
        CCSprite* parallaxLayer04 = [CCSprite spriteWithFile:@"2-hd.png"];    

**/
        /**
        CCSprite* parallaxLayer01 = [CCSprite spriteWithFile:@"bar.png"];   
        CCSprite* parallaxLayer02 = [CCSprite spriteWithFile:@"bar.png"];
        CCSprite* parallaxLayer03 = [CCSprite spriteWithFile:@"bar.png"];
        CCSprite* parallaxLayer04 = [CCSprite spriteWithFile:@"bar.png"];    
        **/
        /**
        CCSprite* parallaxLayer01 = [CCSprite spriteWithFile:@"bar-hd.png"];    
        CCSprite* parallaxLayer02 = [CCSprite spriteWithFile:@"bar-hd.png"];
        CCSprite* parallaxLayer03 = [CCSprite spriteWithFile:@"bar-hd.png"];
        CCSprite* parallaxLayer04 = [CCSprite spriteWithFile:@"bar-hd.png"];    
        **/

        //Create a parallax node and add all four sprites
        CCParallaxNode* parallaxNode = [CCParallaxNode node];
        [parallaxNode setPosition:ccp(0,0)];
        [parallaxNode addChild:parallaxLayer01 z:1 parallaxRatio:ccp(0, 0) positionOffset:ccp(0,0)];
        [parallaxNode addChild:parallaxLayer02 z:2 parallaxRatio:ccp(1, 0) positionOffset:ccp(0,0)];
        [parallaxNode addChild:parallaxLayer03 z:3 parallaxRatio:ccp(2, 0) positionOffset:ccp(0,0)];
        [parallaxNode addChild:parallaxLayer04 z:4 parallaxRatio:ccp(3, 0) positionOffset:ccp(0,0)];
        [self addChild:parallaxNode z:0 tag:1];

        //Move the node to the left then the right
        //This creates the effect that we are moving to the right then the left
        CCMoveBy* moveRight = [CCMoveBy actionWithDuration:5.0f position:ccp(-80, 0)];
        CCMoveBy* moveLeft = [CCMoveBy actionWithDuration:2.5f position:ccp(80, 0)];
        CCSequence* sequence = [CCSequence actions:moveRight, moveLeft, nil];
        CCRepeatForever* repeat = [CCRepeatForever actionWithAction:sequence];
        [parallaxNode runAction:repeat];

    }
    return self;
}

// on "dealloc" you need to release all your retained objects
- (void) dealloc
{
    // in case you have something to dealloc, do it in this method
    // in this particular example nothing needs to be released.
    // cocos2d will automatically release all the children (Label)

    // don't forget to call "super dealloc"
    [super dealloc];
}
@end
</code>

Intenté ejecutar el código usando4, una imagen PNG con canal alfa creado usando GIMP. Al principio funcionó y ahora ya no. No estoy seguro de lo que hice para arruinar.

Lo raro es que con la imagen.5 funciona

He comprobado y hay límites en la especificación de UIImage que sugieren utilizar una imagen de 1024 x 1024. Así lo hice y volví a escalar la imagen.6 y la imagen creada 3 que está dentro del límite especificado por UIImage pero no funciona.

Por no trabajar, quiero decir que el código falla con el siguiente mensaje de error:

<code>2012-04-19 17:14:29.189 ParallaxNodeTest[3713:10a03] cocos2d: cocos2d v1.0.1
2012-04-19 17:14:29.190 ParallaxNodeTest[3713:10a03] cocos2d: Using Director Type:CCDirectorDisplayLink
2012-04-19 17:14:29.226 ParallaxNodeTest[3713:10a03] cocos2d: OS version: 5.1 (0x05010000)
2012-04-19 17:14:29.227 ParallaxNodeTest[3713:10a03] cocos2d: GL_VENDOR:   Apple Computer, Inc.
2012-04-19 17:14:29.228 ParallaxNodeTest[3713:10a03] cocos2d: GL_RENDERER: Apple Software Renderer
2012-04-19 17:14:29.229 ParallaxNodeTest[3713:10a03] cocos2d: GL_VERSION:  OpenGL ES-CM 1.1 APPLE
2012-04-19 17:14:29.229 ParallaxNodeTest[3713:10a03] cocos2d: GL_MAX_TEXTURE_SIZE: 4096
2012-04-19 17:14:29.230 ParallaxNodeTest[3713:10a03] cocos2d: GL_MAX_MODELVIEW_STACK_DEPTH: 16
2012-04-19 17:14:29.231 ParallaxNodeTest[3713:10a03] cocos2d: GL_MAX_SAMPLES: 4
2012-04-19 17:14:29.233 ParallaxNodeTest[3713:10a03] cocos2d: GL supports PVRTC: YES
2012-04-19 17:14:29.234 ParallaxNodeTest[3713:10a03] cocos2d: GL supports BGRA8888 textures: YES
2012-04-19 17:14:29.235 ParallaxNodeTest[3713:10a03] cocos2d: GL supports NPOT textures: YES
2012-04-19 17:14:29.235 ParallaxNodeTest[3713:10a03] cocos2d: GL supports discard_framebuffer: YES
2012-04-19 17:14:29.235 ParallaxNodeTest[3713:10a03] cocos2d: compiled with NPOT support: NO
2012-04-19 17:14:29.236 ParallaxNodeTest[3713:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES
2012-04-19 17:14:29.236 ParallaxNodeTest[3713:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-04-19 17:14:29.237 ParallaxNodeTest[3713:10a03] cocos2d: compiled with Profiling Support: NO
2012-04-19 17:14:29.268 ParallaxNodeTest[3713:10a03] cocos2d: surface size: 960x640
2012-04-19 17:14:29.336 ParallaxNodeTest[3713:10a03] cocos2d: Filename(0-hd-red.png) contains -hd suffix. Removing it. See cocos2d issue #1040
2012-04-19 17:14:29.337 ParallaxNodeTest[3713:10a03] cocos2d: CCFileUtils: Warning HD file not found: 0-red-hd.png
2012-04-19 17:14:29.338 ParallaxNodeTest[3713:10a03] cocos2d: CCTexture2D. Can't create Texture. UIImage is nil
2012-04-19 17:14:29.339 ParallaxNodeTest[3713:10a03] cocos2d: Couldn't add image:0-red.png in CCTextureCache
2012-04-19 17:14:29.340 ParallaxNodeTest[3713:10a03] cocos2d: Filename(0-hd-red.png) contains -hd suffix. Removing it. See cocos2d issue #1040
2012-04-19 17:14:29.340 ParallaxNodeTest[3713:10a03] cocos2d: CCFileUtils: Warning HD file not found: 0-red-hd.png
2012-04-19 17:14:29.341 ParallaxNodeTest[3713:10a03] cocos2d: CCTexture2D. Can't create Texture. UIImage is nil
2012-04-19 17:14:29.342 ParallaxNodeTest[3713:10a03] cocos2d: Couldn't add image:0-red.png in CCTextureCache
2012-04-19 17:14:29.342 ParallaxNodeTest[3713:10a03] cocos2d: Filename(0-hd-red.png) contains -hd suffix. Removing it. See cocos2d issue #1040
2012-04-19 17:14:29.343 ParallaxNodeTest[3713:10a03] cocos2d: CCFileUtils: Warning HD file not found: 0-red-hd.png
2012-04-19 17:14:29.344 ParallaxNodeTest[3713:10a03] cocos2d: CCTexture2D. Can't create Texture. UIImage is nil
2012-04-19 17:14:29.345 ParallaxNodeTest[3713:10a03] cocos2d: Couldn't add image:0-red.png in CCTextureCache
2012-04-19 17:14:29.345 ParallaxNodeTest[3713:10a03] cocos2d: Filename(0-hd-red.png) contains -hd suffix. Removing it. See cocos2d issue #1040
2012-04-19 17:14:29.346 ParallaxNodeTest[3713:10a03] cocos2d: CCFileUtils: Warning HD file not found: 0-red-hd.png
2012-04-19 17:14:29.365 ParallaxNodeTest[3713:10a03] cocos2d: CCTexture2D. Can't create Texture. UIImage is nil
2012-04-19 17:14:29.366 ParallaxNodeTest[3713:10a03] cocos2d: Couldn't add image:0-red.png in CCTextureCache
2012-04-19 17:14:29.367 ParallaxNodeTest[3713:10a03] *** Assertion failure in -[CCParallaxNode addChild:z:parallaxRatio:positionOffset:], /Users/daniele/Desktop/ParallaxNodeTest/ParallaxNodeTest/libs/cocos2d/CCParallaxNode.m:91
2012-04-19 17:14:29.369 ParallaxNodeTest[3713:10a03] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument must be non-nil'
*** First throw call stack:
(0x19e2022 0x1f7ccd6 0x198aa48 0x11af2cb 0x40661 0xb588e 0x3ba25 0xb5632 0xb4d3e 0x8164be 0x817274 0x826183 0x826c38 0x81a634 0x279aef5 0x19b6195 0x191aff2 0x19198da 0x1918d84 0x1918c9b 0x816c65 0x818626 0xb4816 0x24b5 0x1)
</code>

Creo que el tamaño de la imagen no es el problema aquí, ya que anteriormente pude ejecutarlo, pero el hecho de que funciona con la imagen5 y no con las otras imagenes6 Me sugiere que es algo que ver con la forma en que creé los archivos PNG usando GIMP.

Cualquier pegamento? Adjunto la captura de pantalla de los ajustes de GIMP.4 Estoy usando (no en inglés, proporcionaré la traducción a continuación):

Espesor: guardar el color como fondo, guardar la resolución, guardar la fecha de creación, guardar comentarios y guardar el valor de los colores de los puntos transparentes.

Sin engrosar: Interlacment (Adam7), guardar gamma, guardar movimiento de capa

Respuestas a la pregunta(1)

Su respuesta a la pregunta