Map 在MonoGame中使用XTiled-在MonoGame中导入TMX地图

Map 在MonoGame中使用XTiled-在MonoGame中导入TMX地图,map,monogame,tmx,Map,Monogame,Tmx,我在平铺地图编辑器中创建了TMX地图,并使用XTiled在MonoGame中加载地图。在xna项目中,地图加载性能,但在MonoGame中不能。我使用xna项目(在内容项目中)构建.tmx文件,而不是使用所有引用集构建我的单游戏项目,如.xnb文件。生成成功,但无法加载映射 如果有人能告诉我在Monogame中加载TMX地图的步骤或提供一些教程,我将不胜感激 提前感谢。无论如何,我可以向您保证,在MonoGame中使用xTile加载平铺地图是可能的。我是为我们的一场比赛做的 诀窍是使用单游戏依赖

我在平铺地图编辑器中创建了TMX地图,并使用XTiled在MonoGame中加载地图。在xna项目中,地图加载性能,但在MonoGame中不能。我使用xna项目(在内容项目中)构建.tmx文件,而不是使用所有引用集构建我的单游戏项目,如.xnb文件。生成成功,但无法加载映射

如果有人能告诉我在Monogame中加载TMX地图的步骤或提供一些教程,我将不胜感激


提前感谢。

无论如何,我可以向您保证,在MonoGame中使用xTile加载平铺地图是可能的。我是为我们的一场比赛做的

诀窍是使用单游戏依赖项重新编译xTile。下面是我们的级别加载代码片段,可能会有所帮助:

string levelPath = string.Format (@"Content\level{0:00}.tbin", level);
var stream = TitleContainer.OpenStream(levelPath);
_map = xTile.Format.FormatManager.Instance.BinaryFormat.Load(stream);

_mapDisplayDevice = new XnaDisplayDevice(Content, GraphicsDevice, ScreenScale);
_map.LoadTileSheets(_mapDisplayDevice);

var viewportSize = new xTile.Dimensions.Size(ScreenWidth, ScreenHeight);
_viewportRectangle = new xTile.Dimensions.Rectangle(viewportSize);
这里有几件事需要注意。我们没有先将内容预编译到XNB文件。它们只是作为二进制(tbin)文件从地图编辑器导出,并作为直接内容添加。虽然,我不认为这是你的问题,根据记忆,我们不得不做一些小的改变,使它以这种方式工作。因此,使用XNB文件也应该同样有效

其次,我们使用TitleContainer以流的形式读取文件,因为在Android设备上,文件存储在独立的存储中,使用典型的文件系统操作无法找到它们


如果您遵循了,其他所有内容都应该是不言自明的。

是否存在某种错误?你的目标是什么平台?你还没有提供很多信息。提供更多,我会更新我的答案。