4

我目前正在尝试在 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 的情况下自行扩展。只有可能吗?

4

1 回答 1

5

使用 的centerRect属性SKSpriteNode。假设你的纹理是 50 像素宽并且你不想拉伸最左边和最右边的 10 像素:

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

centerRect在纹理的单位坐标中指定。“调整 Sprite 大小”下的更多信息。

于 2013-12-18T22:09:22.527 回答