Spritekit中的资产目录图像切片

时间:2015-06-18 14:49:03

标签: xcode storyboard sprite-kit skspritenode asset-catalog

我想让我的按钮水平和垂直拉伸。

在故事板中一切都很好

storyboard image

但是在SpriteKit中是不一样的!

我正在使用

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

spritekit image

2 个答案:

答案 0 :(得分:3)

您需要设置精灵的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

答案 1 :(得分:2)

如果设置了centeRect,yScale,xScale,则按钮将正确拉伸

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);