是否可以将XNA RenderTarget2D目标设置为System.Drawing.Image



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

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

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

XNA Framework Game类提供了一种快速、简单、可移植的游戏托管方式。它会自动创建一个窗口,让游戏在里面运行,初始化图形硬件,并提供简单的更新和绘制方法供您覆盖。不过,有时游戏行为不够灵活。也许您希望对窗口的创建方式有更多的控制,或者您正在编写一个级别编辑器,并希望在三维绘图表面周围放置Windows用户界面控件。

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

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

最新更新