2013-02-17 69 views
0

我现在正在尝试XNA(专门玩Monogame),看看是否可以制作RPG风格的游戏。用XNA绘制游戏中的窗口

我试图找到在游戏中绘制“窗口”的最佳方式,我可以用它来放置文本或图像,类似于一些像最终幻想游戏这样的旧JRPG游戏。我目前的做法是为窗口的四个角落中的每一个角落绘制一个单独的“角落精灵”(以便使它们变圆),然后用平铺纹理填充两侧。到目前为止,我设法做到了角落,现在在双方工作。

但我确定这不是做事情的最佳方式。关于它的一些事情对我来说似乎很难看。有没有其他方法可以做到这一点?我打算让窗口可调整大小,可以根据颜色进行自定义,这是我认为这种方法不是最好的一些原因。

任何意见将不胜感激。

+1

我不会去与可调整大小的窗口。为了让他们工作,有很多事情需要考虑。里面的内容会发生什么?窗户如何造型?尽可能使您的框架尽可能灵活是很诱人的。但这通常表明你不知道你正在建造的游戏足以做出决定。 – Lucius 2013-02-18 14:34:05

+0

好点。我想我并不真的需要它们像我最初想象的那样充满活力,但是我仍然对绘制它们的正确方法感兴趣,因为我有兴趣在某些方面制作一个很好的基于窗口的用户界面点(但不是现在) – 9a3eedi 2013-02-23 17:01:57

回答

1

根据我想要投资的时间量,我为每个窗口类型(相同的尺寸和设计)使用了一个纹理,并创建了一个类库,可以基于角点和边缘创建这些纹理,纹理,如果我觉得需要真正有能力做到动态。

为了能够主题,我一直只用灰度化纹理的窗户,让我可以在拉伸方法筛选改变颜色方案:

SpriteBatch.Draw(windowTexture, windowLocation, themeColor); 

编辑; 澄清;我将窗口部分渲染到保存完成窗口的纹理上,然后将此完成窗口纹理绘制到屏幕上。有时我也绘制了窗口中的组件(如静态文本)。我这样做是为了减少平局电话的数量,因为它们是昂贵的。

+0

从你的回应和其他人的角度来看,我认为这是最常见的做法,我不应该感到太尴尬。灰度纹理和使用多个纹理听起来像伟大的想法..当我想知道我如何能主题窗口和类似的东西。感谢您的建议 – 9a3eedi 2013-02-23 17:12:10

1

虽然看起来很丑,但我认为你有正确的想法。用这种方法,你可以创建一个类来隐藏丑陋。您还可以旋转角点,以便只加载一个纹理,并根据需要旋转侧面砖块(1像素宽,除非需要图案)。你可以创建一个缩放窗口,这样你就可以调用窗口并用你想要的填充它。现在可能会多一点工作,但在游戏中可以多次使用。

+0

伟大的想法..我没有想过瓷砖旋转,可以节省很多工作哈哈。我已经在一个单独的课程中实施它。 – 9a3eedi 2013-02-23 17:04:21

1

This site在“XNA游戏画面管理”中有一些非常基本的,体面的教程。它从处理游戏状态开始,并在菜单,主游戏碎片等之间进行切换。在弹出的对话框中也有一些想法,听起来像你正在尝试做的事情。

+0

感谢您的链接,这是一个很好的信息来源。弹出式指南看起来并不像描述我正在尝试做的事情,但它具有多种尺寸的动态窗口。 – 9a3eedi 2013-02-23 17:14:28

+0

@ 9a3eedi我只是觉得这是一个可以放置一个小窗口的地方,你可以随意放置。这只是从这里获得的基础,并建立你想要或需要的东西。 – 2013-02-25 15:41:24