大九片拉伸
Large ninepatch stretching
下图需要在灰色区域垂直拉伸。图像的其余部分应在水平方向上同样展开,以便填满屏幕。
所以我将 ninepatch 设置为 0, 0, 158, 28
(a, b, c, d)。当我将其用作 Table
背景时,这就是结果。
在我看来,图像 "just" 填满了屏幕,完全忽略了九块分割。
我的世界大小是 140 宽 250 高 atm。图像宽度为 733。这可能是问题所在吗?我在小图像上使用 ninepatch 时从未遇到过问题。
这是我设置图像的方式:
winTable = new Table(skin);
winTable.background("winpanel");
winTable.setFillParent(true);
stage.addActor(winTable);
//And this is how the image in the atlas is specified
winpanel
rotate: false
xy: 0, 298
size: 733, 203
split: 0, 0, 158, 28
orig: 733, 203
offset: 0, 0
index: -1
我试着用数字来玩,但没有成功。我还尝试手动创建 NinePatch
并在 Image
中使用它,但我得到了相同的结果。现在我想知道是否有可能做我想做的事,也许我需要将横幅与图像的其余部分分开。但是这两个图像应该完美对齐。
这是我用于 ninepatches 的方法,对我很有效。我的地图集中没有 "split" 行,因此您可能不需要将其与此一起使用。
TextureRegion region = skin.getRegion("winpanel");
NinePatch patch = new NinePatch(region, 0, 0, 158, 28);
NinePatchDrawable drawable = new NinePatchDrawable(patch);
winTable.setBackground(drawable);
编辑: 我刚刚注意到你提到你的世界大小是 140 宽,图像是 733 宽...这是很可能是您的问题,因为它正在压缩图像的宽度以适合您的 table。在照片编辑器中打开图像并缩放图像,使其宽度与您希望它在游戏中显示的宽度完全相同。然后用新图像大小的新值尝试 ninepatch,看看它是否有效。
下图需要在灰色区域垂直拉伸。图像的其余部分应在水平方向上同样展开,以便填满屏幕。
所以我将 ninepatch 设置为 0, 0, 158, 28
(a, b, c, d)。当我将其用作 Table
背景时,这就是结果。
在我看来,图像 "just" 填满了屏幕,完全忽略了九块分割。
我的世界大小是 140 宽 250 高 atm。图像宽度为 733。这可能是问题所在吗?我在小图像上使用 ninepatch 时从未遇到过问题。
这是我设置图像的方式:
winTable = new Table(skin);
winTable.background("winpanel");
winTable.setFillParent(true);
stage.addActor(winTable);
//And this is how the image in the atlas is specified
winpanel
rotate: false
xy: 0, 298
size: 733, 203
split: 0, 0, 158, 28
orig: 733, 203
offset: 0, 0
index: -1
我试着用数字来玩,但没有成功。我还尝试手动创建 NinePatch
并在 Image
中使用它,但我得到了相同的结果。现在我想知道是否有可能做我想做的事,也许我需要将横幅与图像的其余部分分开。但是这两个图像应该完美对齐。
这是我用于 ninepatches 的方法,对我很有效。我的地图集中没有 "split" 行,因此您可能不需要将其与此一起使用。
TextureRegion region = skin.getRegion("winpanel");
NinePatch patch = new NinePatch(region, 0, 0, 158, 28);
NinePatchDrawable drawable = new NinePatchDrawable(patch);
winTable.setBackground(drawable);
编辑: 我刚刚注意到你提到你的世界大小是 140 宽,图像是 733 宽...这是很可能是您的问题,因为它正在压缩图像的宽度以适合您的 table。在照片编辑器中打开图像并缩放图像,使其宽度与您希望它在游戏中显示的宽度完全相同。然后用新图像大小的新值尝试 ninepatch,看看它是否有效。