mono - MonoGame 真的是跨平台的吗?

标签 mono xna

当我下载 MonoGame(我将使用它代替 XNA,因为我在 Mac 上)并解压缩它时,所有 MonoDevelop 解决方案文件都被命名为 MonoGame.Framework.[PLATFORM NAME].sln , 与 [PLATFORM NAME]是,嗯,操作系统的名称。以及 the tutorials 中的代码每个平台都不同,因此似乎要在不同的机器上运行 MonoGame 应用程序,它必须被移植。这样对吗?如果是这样,还有哪些其他版本的 XNA 可用于 Mono,最好是在 Xbox 360 上运行?我见过 MonoXNA,但它似乎还不够成熟,不能在这篇文章中使用。

最佳答案

MonoGame 通过在多个平台上提供 XNA API 使您的代码跨平台。 (但它不会使您编译的二进制文件像 Flash 或 Java 那样跨平台。)

MonoGame 本身不是跨平台的,因为每个平台都有它的一个版本 - 因为每个版本都包含为该平台实现 XNA API 所需的大量特定于平台的代码。

(尽管实际上大量 MonoGame 代码是跨平台的,并在不同的 MonoGame 版本之间共享——因为反过来,它构建在 Mono、OpenGL 和 OpenAL 等层上,这些层与 MonoGame 一样,提供具有不同底层实现的一致 API在平台上。)

这与微软官方的 XNA 实现完全相同。 XNA 库有 3 个不同版本(Windows、Xbox 360 和 Windows Phone)。它们都提供 XNA API。使用 XNA API 的代码可以为这些平台中的任何一个构建。

MonoXNA 已经过时了,而且它的大部分有用代码都已经进入 MonoGame 了。

据我所知,目前没有其他使用 Mono 在 OSX 上运行的 XNA 实现。有ExEn ,它使用 Mono - 但仅适用于 iOS 和 Android。

在 Xbox 360 上使用 XNA 的唯一选择是使用 Microsoft 的版本。但这并不妨碍您针对 MonoGame 编译代码。

关于mono - MonoGame 真的是跨平台的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397480/

相关文章:

visual-studio - 是否可以在 Windows 上使用 Visual Studio 调试使用 Mono/XBuild 编译的程序集?

c# - 如何添加对程序集的引用?

c# - Mac 上 Mono 中的 DllImport 出现 DllNotFoundException : wrong architecture

c# - 在 XNA 中显示不同的屏幕?

c# - 当电脑和玩家碰撞时如何引入延迟?

c# - 当前上下文中不存在麦克风

c# - Mono.Simd Vector3( float )丢失了吗?

c# - FontButton 字体更改不起作用

c# - 在 MonoGame 中绘制绘图的子图像

c# - 切开声音效果/静音的开始