Xcode Spritekit中的资源目录图像切片

Xcode Spritekit中的资源目录图像切片,xcode,storyboard,sprite-kit,skspritenode,asset-catalog,Xcode,Storyboard,Sprite Kit,Skspritenode,Asset Catalog,我想使我的按钮水平和垂直拉伸 在故事板中,一切都很好 但在Spritek中,它是不一样的 我正在使用加载图像 let spriteTexture = SKTexture(imageNamed: "button"); let sprite = SKSpriteNode(texture: spriteTexture, color: nil, size: CGSizeMake(290, 400)); 您需要设置精灵的centrrible属性,该属性定义了精灵的缩放方式。这是一个位于中心的标准化的C

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

在故事板中,一切都很好

但在Spritek中,它是不一样的

我正在使用加载图像

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

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

看着你的按钮,你希望除了中间的几个像素以外的所有东西都保持不拉伸。要设置
属性,请执行以下操作:

sprite.centerRect = CGRectMake(0.49, 0.49, 0.02, 0.02)
这意味着从距离精灵角49%宽度和高度的点绘制一个矩形,其边长分别为精灵宽度和高度的2%。因此,仅拉伸纹理的中心2%

苹果公司提供的“使用精灵”文档对此进行了讨论,并对其进行了更有效的解释,这一点我刚才在“调整精灵大小”一节中做过:


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

看着你的按钮,你希望除了中间的几个像素以外的所有东西都保持不拉伸。要设置
属性,请执行以下操作:

sprite.centerRect = CGRectMake(0.49, 0.49, 0.02, 0.02)
这意味着从距离精灵角49%宽度和高度的点绘制一个矩形,其边长分别为精灵宽度和高度的2%。因此,仅拉伸纹理的中心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);

如果设置了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);
是的,我设置了centerRect,但按钮仍然不正常,为了使其工作,还应设置yScale。是的,我设置了centerRect,但按钮仍然不正常,为了使其工作,还应设置yScale。