Come caricare una texture via URL con Cocos2D

Tanto per cambiare sono inciampato in un problema durante lo sviluppo di un gioco su iPhone. In pratica ho la necessità di caricare un’immagine da utilizzare come texture da un sito web e non dal bundle dell’applicazione.

Cocos2d non mette a disposizione dei metodi per caricare direttamente l’immagine come e fosse una texture qualsiasi. Ma c’è un modo per circumnavigare il problema:

NSString *url = [NSString stringWithString:@"http://www.blabla.com/myimage.png"];
Texture2D *tex;
UIImage * img = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]];
if (img) {
		tex = [[Texture2D alloc] initWithImage:img];
}

A questo punto possiamo passare la texture in pasto allo sprite o a qualsiasi altro oggetto necessiti l’immagine che abbiamo appena caricato. Facile ed indolore.