1

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

在情节提要中一切正常

故事板图像

但是在SpriteKit中就不一样了!

我正在使用加载图像

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

spritekit 图片

4

2 回答 2

3

您需要设置centreRect定义其缩放方式的精灵属性。这是中心的标准化CGRect,不会被缩放,但它周围的元素会被缩放。

查看您的按钮,您希望除中心几个像素之外的所有内容都保持未拉伸。要设置centreRect属性:

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

这意味着一个矩形是从距离精灵角的宽度和高度的 49% 的点绘制的,其边长分别为精灵宽度和高度的 2%。因此只有纹理的中心 2% 被拉伸。

这在 Apple 提供的“使用 Sprites”文档中进行了讨论,并比我刚刚在“调整 Sprite 大小”一节中更有效地解释了它:

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

于 2015-06-18T15:33:26.963 回答
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);
于 2015-06-18T20:38:13.200 回答