2013-10-09 3 views
7

私はGPUに画像をストリーミングしようとしていますが、SKSpriteNodeを使用しています。画像は私のバンドルではなく、代わりにimageNamedのUIImageで動作するようにいくつかの方法がある場合、私は思っていた:URLからのUIImageを使用したSKSpriteNode

私の現在の考えである

URL - >のNSData - > UIImage - > addToFile: - > imageNamed:

パスに追加して画像を呼び出すことができます。バンドルに含まれていない場合、UIImageを名前で動的に参照するにはどうすればよいでしょうか?

+0

試してみることになった:URL - > NSDataの - >をファイルをドキュメントに保存する - > imageNamed: - アプリケーションが起動したりシーンをロードするたびに、実際にその操作をしたくないので、帯域幅が限られたプランに多くの人がいるため、**画像をキャッシュする必要があります(遅い接続はもちろん)。 – LearnCocos2D

答えて

17

ので、apparantly SKTextureはUIImageを収容することができ、私は

NSString* urlString = @"http://superawesomeimage.com.jpg"; 
NSData* imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
UIImage* theImage = [UIImage imageWithData:imageData]; 

SKView* theView = [[SKView alloc] initWithFrame:self.view.frame]; 
[self.view addSubview:theView]; 

SKScene* theScene = [SKScene sceneWithSize:theView.frame.size]; 

SKSpriteNode* theSprite = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImage:theImage]]; 
[theScene addChild:theSprite]; 
-1

画像があります。なぜaddToFileを行うのですか? - > imageNamed:あなたの画像を取得するには?ただ、やる:

NSURL *yourURL = [NSURL URLWithString:@"www.somepage.com/yourimage.png"]; 
NSData *data = [NSData dataWithContentsOfURL:yourURL]; 
UIImage *yourimage = [UIImage imageWithData:data]; 
+0

イメージをバンドルのように参照しようとしています。ありがとう! – aug2uag

5

スウィフト回答の線に沿って何か

let url = NSURL(string: imageURL) 
    let data = NSData(contentsOfURL: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check 
    let theImage = UIImage(data: data!) 
    let Texture = SKTexture(image: theImage!) 


    let mySprite = SKSpriteNode(texture: Texture) 
    self.addChild(mySprite) 
関連する問題