MonoGame真的是跨平台吗?

时间:2012-07-09 14:47:26

标签: mono xna

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

1 个答案:

答案 0 :(得分:14)

MonoGame通过在多个平台上提供XNA API,使您的代码跨平台。 (但它不会使你编译的二进制跨平台,比如Flash或Java。)

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

(虽然实际上大量的MonoGame代码跨平台并在不同的MonoGame版本之间共享 - 因为它反过来构建在Mono,OpenGL和OpenAL等层上,就像MonoGame一样,在平台上提供具有不同底层实现的一致API。)

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


MonoXNA已经过时了,无论如何,它的大部分有用代码已经进入了MonoGame。

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

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