在SKSpriteNode上使用resizableImageWithCapInsets

时间:2013-12-18 21:43:32

标签: ios sprite-kit uiedgeinsets

我目前正在尝试在SKSpriteNode上使用可伸缩的图像。

通常,方法UIImage::resizableImageWithCapInsets:

返回可伸缩图像

所以我写了那段代码:

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

但它不起作用。节点在不考虑Edge Insets的情况下进行自我扩展。这是唯一可能的吗?

1 个答案:

答案 0 :(得分:3)

使用centerRect的{​​{1}}属性。假设您的纹理宽度为50像素,并且您不想拉伸最左边和最右边的10个像素:

SKSpriteNode

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); 在纹理的单位坐标中指定。 “调整精灵大小”下的更多信息here