7

画像を GPU にストリーミングしようとしていて、SKSpriteNode を使用しています。画像はバンドルに含まれていないため、imageNamed の代わりに UIImage を使用する方法があるかどうか疑問に思っていました。

私の今の考えは

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

パスに追加して画像をそのように呼び出すことはできますか、または UIImage がバンドルに含まれていないときに動的に名前で UIImage を参照するための最良の方法は何ですか?

4

3 に答える 3

17

したがって、明らかに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];
于 2013-10-10T03:01:19.870 に答える
9

迅速な回答

    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)
于 2016-03-08T18:02:24.057 に答える
0

あなたはあなたのイメージを持っています。addToFile: -> imageNamed: を使用して画像を取得するのはなぜですか? ただ行う:

 NSURL *yourURL = [NSURL URLWithString:@"www.somepage.com/yourimage.png"];
 NSData *data = [NSData dataWithContentsOfURL:yourURL];
 UIImage *yourimage = [UIImage imageWithData:data];
于 2013-10-09T22:05:18.747 に答える