2013-10-09 32 views
7

我试图流图像到GPU,并使用SKSpriteNode。这些图像是不是在我的包,我想知道是否有某种方式与UIImage的,而不是imageNamed工作:SKSpriteNode与URL从UIImage

我现在的想法是

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)