2012-10-19 40 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