我目前正在尝试在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的情况下进行自我扩展。这是唯一可能的吗?
答案 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。