2013-12-18 1 views
3

В настоящее время я пытаюсь использовать растягиваемое изображение на SKSpriteNode.Использовать resizableImageWithCapInsets на SKSpriteNode

Обычно strechable изображения возвращаются методом UIImage::resizableImageWithCapInsets:

Так я писал этот код:

SKTexture * texture = [SKTexture textureWithImage:[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]]; 
SKSpriteNode * node = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(150, 8)]; 

Но это не работает. Узел разворачивается, не принимая во внимание вставки Edge. Это возможно?

ответ

3

Использовать centerRect Недвижимость SKSpriteNode. Если предположить, что текстура 50 пикселей в ширину, и вы хотите, чтобы не растянуть левые и правые 10 пикселей:

SKTexture *texture = [SKTexture textureWithImage:image]; 
SKSpriteNode *node = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(150, 8)]; 
node.centerRect = CGRectMake(10/50.0, 0, 30/50.0, 1); 

centerRect задается в единицах координаты текстуры. Дополнительная информация here в разделе «Изменение размера спрайта».