4

如果我想创建一个不一定要全屏运行的游戏,而只需要在屏幕的某处显示 2D/3D 图形,我最好的方法是什么?

快速线框

一些具体问题可能是:

  • 渲染区域将使用什么组件?
  • 是否有任何游戏库可以用于渲染区域?
  • 根据微软在这里使用的最“纯粹”或“规范”的堆栈是什么?
4

2 回答 2

1

Omega——Visual Studio 2010 和 2012 都是 WPF 应用程序。WinRT 适用于平板电脑/手机。WPF 当然不会过时。

如果我是你,我不会按照画布强制你的方式呈现所有内容,将中心项设置为名为 Frame 的 UI 元素可能是一种更好的方法,它是 WPF 中所有 UI 相关内容的基本元素。

通过这种方式,无论您决定 An ImageSourceType 还是 Canvas 更适用于游戏的特定功能,您都可以利用 Frame 中所有可能的控件类型。

于 2012-10-04T18:49:53.900 回答
0

根据您想要绘制图形的方式,您可以使用(但绝不限于):

  • 画布 - 完全适合慢速游戏。通过这种方式,您可以获得各种 WPF 布局例程的好处,并且还可以在 XAML/向量中定义场景内的对象。
  • WPF 支持 3D 图形(在后端使用 Direct3D),因此您可以设置正交投影矩阵并将其视为 Direct3D 上下文(使用 WPF API)。我没有足够的经验知道这与 D3D 相比有多慢,但它肯定更容易(例如,内置的“场景图”,如来自 XAML 架构的支持)。
  • 如果你想全面使用 Direct3D,你可以使用 SlimDX,它有一个我过去使用过的 WPF 垫片,以及另一个第三方控件。可能还有其他可用的库。
  • 使用 WriteableBitmap(请参阅WriteableBitmapEx以了解具有更友好 API 的第三方版本)或类似方法直接向/从位图进行位图传输。

可能还有很多其他选择。如果它是一个不需要超快帧速率的慢节奏游戏,我的首选是最初使用 Canvas(布局工作确实会产生相当大的开销,但它的工作量更少,并且可能更容易获得准确的方式你要)。

如果您想要绝对的控制和速度,请通过 SlimDX 使用 D3D,但如果您是新手,这将是一个相当大的学习曲线。

于 2012-09-04T15:10:57.187 回答