2012-10-19 187 views
1

我已经使用了CCSprite并且使用函数spriteWithFile给出了项目中存在的图像。现在我想从服务器下载图像并将其加载到cocos2D游戏场景中的CCSprite中。什么是好的选择。请建议。cocos2D中图像的异步下载

我使用此代码,它不工作:提前

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://50.62.138.228:6026/1370user.jpg"]]]; 
    NSURLResponse *response; 
    NSError *error; 
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    CCTexture2D *texture = [[CCTexture2D alloc] initWithData:responseData 
               pixelFormat:kCCTexture2DPixelFormat_RGBA8888 
                pixelsWide:50 
                pixelsHigh:50 
               contentSize:CGSizeMake(50, 50)]; 
    sprite_Temp = [CCSprite spriteWithTexture:texture]; 
    sprite_Temp.position=ccp(432,273); 
    [self addChild:sprite_Temp z:5]; 

感谢。

+0

也许你可以从搜索“异步图像下载”开始?你试过什么了? –

回答

1

顺序是:

CCImage::initWithImageData(void* pData, int nDataLen, ...) 
CCTexture2D::initWithImage(CCImage* uiImage); 
CCSprite::initWithTexture(CCTexture2D* pTexture); 

或iphone

从任何URL

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://sdufhs.com/img.png"]]]; 

NSURLResponse *response; 
NSError *error; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

NSString *strResponse = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

您可以在数据的形式获取数据获取数据...

NSData *imgData = UIImagePNGRepresentation(image); 

CCTexture2D *texture = [[CCTexture2D alloc] initWithData:imgData 
             pixelFormat:kTexture2DPixelFormat_RGBA8888 
             pixelsWide:width2 
             pixelsHigh:height2 
            contentSize:size]; 

    CCSprite *sgfd = [CCSprite spriteWithTexture:texture]; 
+0

嗨。我正在使用你的代码。我能够制作NSData。我将NSData传递给纹理,然后当我使用该纹理创建精灵时,它不起作用。没有任何显示。 ?? – NiKKi

+0

你做错了什么.....我能够创建具有该纹理的精灵 –

+0

我已经更新了上述问题中的代码。你可以看看代码并告诉mw,我做错了什么? – NiKKi