Eri*_*ric 3 c# xna monogame sharpdx
我一直在研究用于创建游戏的好工具,我遇到了 Monogame、Sharpx 和 XNA。我对每个问题都有一些疑问:
当我创建一个新的 Windows 项目(它宣传它使用 DirectX 12)时,代码模板如下所示:
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
Run Code Online (Sandbox Code Playgroud)我知道 Monogame 是 XNA 的重新实现,但“重新”部分在哪里?这段代码显示了使用 Microsoft 的 XNA 的 Monogame,甚至没有暗示 DirectX 12 的使用。
我觉得我对某些事情感到困惑并想要清楚。请记住,我对这些东西完全是个菜鸟,任何事情都有帮助!
小智 5
MonoGame 确实是 XNA 的重新实现。它使用Microsoft.Xna.Framework.*命名空间来保持源代码与 XNA 项目的兼容性。MonoGame 目前不支持 DirectX 12 - 桌面版有 DirectX 11 和 OpenGL 后端。
它为常见游戏任务(加载内容、渲染、声音播放等)提供了简单的跨平台类,并为构建运行时优化的内容文件提供了管道。MonoGame 对于大多数项目来说非常强大,并且非常适合快速开发,尽管它不是像 Unity 这样功能齐全的游戏引擎。由于它是仿照 XNA(几年前停产)建模的,因此大多数 XNA 示例/教程都可以正常工作。
SharpDX 是DirectX 类型的低级包装器。仅当您想用低水平的管道弄脏手时才应该使用它,而事实并非如此。
MonoGame 的 DirectX 实现(用于经典 Windows、UWP 和 Windows 8 应用程序)在内部使用 SharpDX 与 DirectX 进行通信。说到 WinRT,它只是“现代”Windows 应用程序平台的一个实现细节。