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

时间:2020-03-05 18:38:48  来源:igfitidea点击:

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

还有另一种"简便"的方法吗?最好的方法是什么?

解决方案

回答

是的。我正在编辑。对于XNA,它是一种类似XAML的语言(如果需要,也可以是类似OpenLaszlo的语言)。因此,编辑器可以调整按钮的大小。还可以通过样式表来调整按钮的大小。

我猜我们是对的,在实际设计中按钮的大小可能都相同。但是,即使在窗口的应用程序中,有时也需要使按钮更宽以适应文本。

回答

如果我们确实想实现此目的,则可以使用纹理坐标来实现。就像我们要使用带有表格的HTML进行可拉伸的按钮/面板设计一样,我们只需定义拐角,顶部可拉伸区域,底部可拉伸区域,侧面可拉伸区域以及中间的UV坐标。

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

回答

着色器应该是可能的。我们可能必须进行texel查找,但是这样可以减少复杂UI中三角形的数量。