0

基本上,我正在开发一个 C# WinForms 应用程序,并且我希望将 XNA 3.1 游戏绘制到图像上,无论是设备的主后备缓冲区还是我必须设置的渲染目标。这可能吗?

4

1 回答 1

0

是的,这是可能的,请参见此处:

http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1

XNA Framework Game 类提供了一种快速、简单且可移植的方式来托管您的游戏。它会自动创建一个窗口供游戏在其中运行,初始化图形硬件,并提​​供简单的 Update 和 Draw 方法供您覆盖。不过,有时游戏行为不够灵活。或许您想要更多地控制窗口的创建方式,或者您正在编写关卡编辑器并想要在 3D 绘图表面周围放置 Windows 用户界面控件。

幸运的是,XNA 框架的设计考虑了这些场景。该框架实际上由两个独立的程序集组成:Microsoft.Xna.Framework 提供核心功能,例如数学、图形、输入和音频类,Microsoft.Xna.Framework.Game 提供可选的更高级别代码,例如游戏班级。如果您想以其他方式托管您的游戏,您可以将 Microsoft.Xna.Framework.Game 中的功能替换为您自己的代码。

此示例实现了一个 GraphicsDeviceControl 类,该类继承自 System.Windows.Forms.Control,并为 WinForms 控件提供了使用 XNA Framework GraphicsDevice 对象绘制自身的能力。它演示了如何在多个控件之间共享单个 GraphicsDevice 对象,如何处理调整大小和丢失设备,以及如何实现 IGraphicsDeviceService 接口以支持通过 ContentManager 加载数据。

于 2012-02-05T20:07:17.360 回答