在视频游戏中绘制可换肤的"按钮"的最佳方法是什么?
时间: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中三角形的数量。