来自URL的UIImage的SKSpriteNode

aug*_*uag 7 objective-c ios sprite-kit

我正在尝试将图像流式传输到GPU,并使用SKSpriteNode.图像不在我的包中,我想知道是否有某种方法可以使用UIImage而不是imageNamed:

我目前的想法是

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

我可以添加到路径并以这种方式调用图像,或者当它未包含在捆绑包中时,动态地引用UIImage的最佳方式(可能)是什么?

aug*_*uag 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];
Run Code Online (Sandbox Code Playgroud)


bri*_*ric 7

快速回答

    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)
Run Code Online (Sandbox Code Playgroud)