2015-06-18 3 views
1

Я хочу сделать свою кнопку горизонтальной и вертикально растяжимой.Каталог объектов для сортировки изображений в Spritekit

В раскадровке все нормально

storyboard image

Но в SpriteKit не то же самое!

I'am загрузки изображения с помощью

let spriteTexture = SKTexture(imageNamed: "button"); 
let sprite = SKSpriteNode(texture: spriteTexture, color: nil, size: CGSizeMake(290, 400)); 

spritekit image

ответ

2

If centeRect, yScale , XScale установлены кнопка streach правильно

let sprite = SKSpriteNode(texture: spriteTexture, color: nil, size: CGSizeMake(290, 58)); 
sprite.position = CGPointMake(0, -100); 
sprite.centerRect = CGRectMake(140/290.0, 24/58.0, 10.0/58.0, 10.0/58.0); 
sprite.yScale = CGFloat(250.0/58.0); 
sprite.xScale = CGFloat((self.frame.size.width - 20)/290.0); 

self.addChild(sprite); 
1

Вы должны установить centreRect свойство вашего спрайта, который определяет, как он масштабируется. Это нормализованный CGRect в центре, который не будет масштабироваться, но элементы вокруг него будут.

Глядя на вашу кнопку, вы хотите, чтобы все, кроме центра, несколько пикселей, чтобы оставаться нерастянутым. Для того, чтобы установить centreRect свойства:

sprite.centerRect = CGRectMake(0.49, 0.49, 0.02, 0.02) 

Это означает, что прямоугольник рисуется с точкой 49% от ширины и высот от угла спрайта и имеет стороны длиной 2% спрайтов ширины и высоты соответственно. Поэтому только центр 2% текстуры растягивается.

Это обсуждается в разделе «Работа с спрайтов» документ, который Apple, обеспечивает и объясняет это гораздо более эффективно, что я только что сделал в разделе «Изменение размера спрайт»:

https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Sprites/Sprites.html

+0

Да я установил ** centerRect ** но еще кнопка не была нормальна для того, чтобы заставить его работать ** yScale ** также должен быть установлен. – grape1

Смежные вопросы