MonoGame真的是跨平台的吗?

MonoGame真的是跨平台的吗?,mono,xna,Mono,Xna,当我下载MonoGame(由于我在Mac上,我将使用它代替XNA)并解压缩它时,所有MonoDevelop解决方案文件都命名为MonoGame.Framework.[PLATFORM NAME].sln,其中[PLATFORM NAME]是操作系统的名称。而且中的代码对于每个平台都是不同的,因此似乎一个单游戏应用程序要在不同的机器上运行,就必须进行移植。这是正确的吗?如果是的话,Mono还有哪些其他版本的XNA,最好能在Xbox360上使用?我见过MonoXNA,但它似乎还不够成熟,无法在本文中

当我下载MonoGame(由于我在Mac上,我将使用它代替XNA)并解压缩它时,所有MonoDevelop解决方案文件都命名为
MonoGame.Framework.[PLATFORM NAME].sln
,其中
[PLATFORM NAME]
是操作系统的名称。而且中的代码对于每个平台都是不同的,因此似乎一个单游戏应用程序要在不同的机器上运行,就必须进行移植。这是正确的吗?如果是的话,Mono还有哪些其他版本的XNA,最好能在Xbox360上使用?我见过MonoXNA,但它似乎还不够成熟,无法在本文中使用。

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

MonoGame本身不是跨平台的,因为每个平台都有一个版本,因为每个版本都包含大量特定于平台的代码,需要为该平台实现XNAAPI

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

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


MonoXNA已经过时了,它的大部分有用的代码都已经变成了MonoGame

据我所知,目前没有其他XNA实现使用Mono在OSX上运行。还有一个,它使用单声道,但只适用于iOS和Android


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

好的,谢谢您的回复。有没有办法将Microsoft XNA与MonoDevelop结合使用,例如将某些程序集链接到C#编译器?我仍然希望使用该框架,只是最好在Mac上使用。:)@你的意思是:在Mac上使用MonoDevelop编译Windows/Xbox 360/Windows Phone XNA游戏?我认为这在技术上是可能的。C#与Java类似,因为二进制文件实际上是跨平台的——因此只需为每个平台构建设置适当的特定于平台的引用。但这是一个坏主意,因为您将无法运行它们(测试和调试)。您将无法使用这些工具,尤其是内容管道,但也无法使用Xbox 360/WP7部署工具。我建议您在虚拟机或双启动中运行Windows。好吧,这可能就是我最终要做的。谢谢你的回答!