2012-06-23 100 views
0

我试图从磁盘上的映像创建一个CCSprite。该文件是绝对有效的图像,我想将其显示在CCLayer上。我使用此代码来显示图像:来自CCSPrite中文件的奇怪CGImage

// from a CCLayerColor 
    CGDataProviderRef imgDataProvider = CGDataProviderCreateWithFilename(@"/documents/pathto/file.jpg"); 
    CGImageRef image = CGImageCreateWithJPEGDataProvider(imgDataProvider, NULL, NO, kCGRenderingIntentDefault); 
    self.sprite = [CCSprite spriteWithCGImage:image key:@"sprite_frame_01"]; 
    self.sprite.anchorPoint = ccp(0,0); 
    [self setContentSize:CGSizeMake(100, 100)]; 
    [self addChild:self.sprite]; 

然而,当渲染场景我看到(的CCSprite是与周围的白色背景的数字):

Buggy CCSprite

无论使用哪种图像,都会发生这种情况。还有什么我需要做的吗?

+0

是否有你不仅仅使用[CCSprite spriteWithFile:@“file.jpg”]的原因? –

+0

我尝试过,但呈现一个空白图像。从文档中,'[CCSprite spriteWithFile:@“file.jpg”]'不适用于与应用程序一起部署的资源吗? – Echilon

回答

0

问题是,cocos2d自动将-ipad添加到图像文件名,因为它来自相机胶卷,所以图像文件名不存在。我使用[[CCFileUtils sharedFileUtils] setiPadSuffix:@""];进行了修复。

我的应用没有任何特定的iPad或视网膜特定文件,但对于那些做的,abica在cocos2d forums上写了一个很好的方法,它显示了如何在每个文件的基础上处理这个问题。