据我所知,有几种方法可以将单人游戏程序集放到MonoGame项目中:
这三种选择的区别是什么?他们之间有什么关系?如何在项目中使用它们?
我在库方面的混乱的一个很好的例子可以在MonoGame.Binaries和安装程序安装的程序集的例子中找到。据我所知,MonoGame.Binaries似乎没有提供与安装程序相同的粒度级别;例如:
e 224等等。E 138wp8E 239。在我看来,Monogame.Binaries包看起来已经过时了,但是如果它不过时,并且我想要使用NuGet包的方便性来设置一个适当的Linux、WindowsGL和/或DirectX Windows项目,我会选择net40作为前两个版本,而netcore用于DirectX平台吗?
(NB:,在某种程度上,我确实理解MonoGame.Portable的目的是要创建一个更干净的代码库,更多的代码重用是独立于平台的,但与其他库源相比和对比,它的作用对我来说还是相当模糊的。)
发布于 2014-07-08 18:49:02
感谢您询问有关MonoGame NuGet包的信息。
是的,MonoGame可以通过安装主MonoGame安装程序(适用于MonoGame)来使用,该安装程序使用Visual安装所有受支持的平台和项目模板。(也有一个MonoDevelop包,但这已经过时了)
主安装程序通常只能作为一个稳定的包使用,目前作为V3.2发布。(有一个自动更新的安装程序,由自动生成引擎MonoGame使用更新,但通常不建议访问它,除非您真正知道自己在做什么)
不久前,我开始着手发布MonoGame库(并最终发布项目模板),过了一段时间,MonoGame核心团队接受了这一点,并且没有在官方的MonoGame NuGet帐户下发布。目前,这提供了2个版本,目前的3.2稳定版本只更新了每个主要版本,还有一个开发版本(作为alpha版本)定期更新或更频繁地进行重大更改。
NuGet包与安装程序有相同的目标,但事先不需要机器上的任何内容。
现在,由于NuGet的局限性,我们无法提供所有可用的平台,主要原因是NuGet没有提供详细的平台标识,只提供主要平台类型(Windows、Windows 8、Windows、Android、MonoTouch、MonoMac等),因此没有像Ouya这样的差异。它目前也不支持Linux。这就限制了我们可以在一个包中交付的平台,但只有一点。我们确实讨论了为变体发布第二个包的问题,但人们认为这只会使事情变得混乱。
因此,NuGet支持的平台是:
基本DLL在MonoGame.Binaries包中提供
我们现在还在新的MonoGame NuGet包中为空解决方案提供项目模板文件(它还为DLL安装二进制包),这将添加每个平台所需的任何特定于平台的文件和配置。它还支持上述所有平台。
因此,要从MonoGame中使用NuGet,您可以使用使用MonoGame安装程序构建的现有项目,然后删除所有引用并安装稳定的MonoGame.binaries NuGet或MonoGame.binaries alpha (这意味着在部署新版本/补丁时会通知您新的版本/修复)。或者,您可以从一个空项目开始,只需安装MonoGame NuGet,它还将安装项目文件以及dll的文件。
是你的选择。
至于MonoGame.Portable NuGet包,这完全是由我来维护的(直到我喝了酒,并请MG团队将其包括在内)。这是MonoGame的一个特殊版本,可以在PCL (可移植类库)中使用它来创建一个共享库,以包含游戏代码以从平台抽象它。这里有一篇文章描述了它的用途:http://darkgenesis.zenithmoon.com/monogame-building-portable-solutions/。
如果你想用这种方式管理你的多平台项目,使用便携模式来构建你的游戏只是另一个选择。
至于未来,MonoGame团队和它的贡献者认识到,关于平台的使用存在一些文档空白,长期的目标是改进文档的范围,但这是一个缓慢的过程。第一个解决方案是通过创建一个新的示例存储库来促进使用MonoGame构建多平台解决方案的良好标准。如果您选择帮助,这个存储库还有几个正在开发中的示例。我在这里发布了新的样本,http://darkgenesis.zenithmoon.com/monogame-building-portable-solutions/
因此,正如您所看到的,有多种选择,框架也在不断增长。
总之,您有几个选项可以使用可怕的MonoGame框架:
如果您想使用便携式库,那么使用一个共享的PCL游戏库,然后创建一个正常的平台项目,并引用可移植库作为游戏代码。
请随时记下上面提到的任何问题,我会回答其他相关的问题。
希望这能有所帮助
https://stackoverflow.com/questions/24597341
复制相似问题