Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xna 绘制skinnable的最佳方法是什么;按钮“;在电子游戏中?_Xna_Button_Skins - Fatal编程技术网

Xna 绘制skinnable的最佳方法是什么;按钮“;在电子游戏中?

Xna 绘制skinnable的最佳方法是什么;按钮“;在电子游戏中?,xna,button,skins,Xna,Button,Skins,我正在寻找如何在游戏应用程序中绘制可蒙皮“按钮”的想法。如果我使用固定的精灵非矢量图像作为按钮背景,那么我无法轻松调整按钮的大小。如果我编写代码来绘制一个可调整大小的按钮(就像绘制Windows按钮一样),那么程序员就必须参与其中——这会使蒙皮变得困难。另一个选择是将按钮分成9个较小的图像(3x3)并将它们全部拉伸——有点像圆角是在HTML中完成的 还有其他“更简单”的方法吗?最好的方法是什么?是的。我在做编辑。它是XNA的一种类似XAML的语言(如果您愿意,也可以是类似OpenLaszlo的语

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


还有其他“更简单”的方法吗?最好的方法是什么?

是的。我在做编辑。它是XNA的一种类似XAML的语言(如果您愿意,也可以是类似OpenLaszlo的语言)。因此,编辑器可以调整按钮的大小。按钮也可以通过样式表调整大小


我想你是对的,在一个真实的设计中,按钮很可能都是相同大小的。但是,即使在窗口的应用程序中,有时也需要将按钮加宽以容纳文本。

如果你真的想做到这一点,方法是使用纹理坐标。与使用HTML制作带有表格的可拉伸按钮/面板设计非常相似,您只需定义角、顶部可拉伸区域、底部可拉伸区域、侧面可拉伸区域以及中间的UV坐标

有关在XNA引擎中实现的示例(尽管它是一个封闭源代码引擎),请参见以下内容:
应该可以使用着色器。您可能需要进行texel查找,但这将减少复杂UI中三角形的数量