Wie nähere ich mich -hd Dateien

BEARBEITEN:Nach der ersten Antwort habe ich mich eingehender mit Stackoverflow befasst und das Problem umformuliert als ° Wie kann ich nur HD-Dateien verwenden? "und Folgendes festgestellt:Wie verhindere ich, dass Cocos2D Standard Definition-Ressourcen (SD-Images) benötigt? Ich werde jetzt die vorgeschlagene Lösung ausprobieren und wenn es funktioniert, werde ich den bearbeiteten Titel verlassen und die ursprüngliche Frage entfernen, die irreführend sein könnte.

ist eine Weile, die ich versuche, Cocos2d zu lernen und mit Büchern wieKochbuch undcocos2d lernen. Das ist ein guter Anfang, aber manchmal stecke ich in Problemen wie denen, die ich heute zu erklären versuchen werde.

Ich habe begonnen, das Beispiel für die Verwendung von CCParallaxNode in book zu ändern1 auf Seite 66. Mein Ziel ist es, vier Ebenen der folgenden Größe hinzuzufügen: 960 Pixel hoch und 1280 Pixel breit, die auf einem iPhone-Simulator mit iOS 5.0 und der Cocos2d 1.01 rc-Bibliothek ausgeführt werden.

Ich habe ein neues Projekt mit den installierten Vorlagen erstellt und die HelloWorldLayer.m-Klasse wie folgt geändert:

<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>

Ich habe versucht, den Code mit auszuführen4, ein PNG-Bild mit Alphakanal, das mit GIMP erstellt wurde. Es hat anfangs funktioniert und jetzt nicht mehr. Ich bin mir nicht sicher, was ich getan habe, um es zu vermasseln.

Das Seltsame ist, dass das mit Bild5 es funktioniert.

Ich habe die UIImage-Spezifikation überprüft und es gibt Beschränkungen, die die Verwendung eines 1024 x 1024-Bildes vorschlagen. Also habe ich das Bild neu skaliert6 und erstelltes Bild 3 Dies liegt innerhalb der von UIImage festgelegten Grenze, funktioniert jedoch nicht.

Für nicht funktionieren meine ich, dass der Code mit der folgenden Fehlermeldung abstürzt:

<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>

Ich denke, dass die Bildgröße hier nicht das Problem ist, da ich es zuvor ausführen konnte, sondern die Tatsache, dass es mit dem Bild funktioniert5 und nicht mit den anderen Bildern6 schlägt mir vor, dass das etwas damit zu tun hat, wie ich die PNG-Dateien mit GIMP erstellt habe.

Irgendein Kleber? Ich hänge den Screenshot der GIMP-Einstellungen an4 Ich verwende (nicht auf Englisch, wird die Übersetzung unten bereitstellen):

Dick ein: Farbe als Hintergrund speichern, Auflösung speichern, Erstellungsdatum speichern, Kommentare speichern und Farbwert von Transparentpunkten speichern.

Nicht verdickt: Verschachtelung (Adam7), Gamma speichern, Ebenen verschieben speichern

Antworten auf die Frage(1)

Ihre Antwort auf die Frage