在视频游戏中绘制可换肤“按钮”的最佳方法是什么?

时间:2008-08-10 03:11:28

标签: xna button skins

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

还有另一种“更容易”的方式吗?什么是最好的方法?

3 个答案:

答案 0 :(得分:2)

如果您真的想要实现这一点,那么使用纹理坐标的方法就是这样。就像你用HTML制作带有桌子的HTML的可伸缩按钮/面板设计一样,你只需定义角落的UV坐标,顶部可伸展区域,底部可伸展区域,侧面可伸展区域,然后是中间。

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

答案 1 :(得分:0)

是。我正在编辑。对于XNA来说,它是类似XAML的语言(或类似OpenLaszlo,如果你愿意)。所以按钮可以由编辑器调整大小。按钮也可以通过样式表调整大小。

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

答案 2 :(得分:0)

着色器应该可以。您可能不得不进行纹理元素查找,但它会减少复杂UI中三角形的数量。