MonoGame真的是跨平台吗?

Jwo*_*sty 8 mono xna

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

And*_*ell 14

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

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

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

这与Microsoft的官方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的代码.