我正在寻找有关如何在游戏应用程序中绘制可换肤“按钮”的想法。如果我使用固定的精灵非矢量图像作为按钮背景,那么我无法轻松调整按钮的大小。如果我编写代码来绘制可调整大小的按钮(就像绘制 Windows 按钮一样),那么程序员就必须参与其中 - 这使得换肤变得困难。另一种选择是将按钮分成 9 个较小的图像 (3x3) 并将它们全部拉伸——有点像 HTML 中的圆角。

还有另一种“更简单”的方法吗?最好的方法是什么?

有帮助吗?

解决方案

如果你真的想做到这一点,那么方法就是使用纹理坐标。就像您使用表格在 HTML 中制作可拉伸按钮/面板设计一样,您只需定义角、顶部可拉伸区域、底部可拉伸区域、侧面可拉伸区域以及中间的 UV 坐标即可。

有关在 XNA 引擎(尽管它是闭源引擎)中实现的示例,请参阅以下内容:http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial

其他提示

是的。我正在从事编辑工作。它是 XNA 的类似 XAML 的语言(或者类似 OpenLaszlo,如果您愿意的话)。因此编辑器可以调整按钮的大小。按钮也可以通过样式表调整大小。

我想你是对的,在实际设计中按钮可能都是相同的尺寸。但即使在窗口应用程序中,您有时也需要使按钮更宽以容纳文本。

使用着色器应该可以实现。您可能需要进行纹素查找,但这会减少复杂 UI 中三角形的数量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top