当我下载MonoGame(由于在Mac上将使用它代替XNA)并将其解压缩时,所有MonoDevelop解决方案文件都命名为MonoGame.Framework.[PLATFORM NAME].sln,而[PLATFORM NAME]就是操作系统的名称。每种平台上the tutorials中的代码都不同,因此,要使MonoGame应用程序运行在不同的计算机上,必须将其移植。这样对吗?如果是这样,Mono还有哪些其他版本的XNA,最好在Xbox 360上运行?我已经看过MonoXNA,但截至本文为止,它似乎还不够成熟,无法使用。

最佳答案

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

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

(尽管实际上,大量的MonoGame代码是跨平台的,并且在不同的MonoGame版本之间共享-因为依次地,它是基于Mono,OpenGL和OpenAL等层构建的,像MonoGame一样,它们提供了具有不同底层实现的一致API在平台上。)

这与Microsoft的官方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/

10-09 08:42
查看更多