我已经在平铺地图编辑器中创建了TMX地图,并且我使用XTiled在MonoGame中加载地图。我用xna项目(在内容项目中)构建.tmx文件,而不是在我的单一游戏项目中构建所有引用集的.xnb文件。构建成功,但无法加载地图。
如果有人能告诉我在Monogame中加载TMX地图的步骤,或者为我提供一些教程,我将不胜感激。
提前谢谢。
发布于 2013-06-20 07:14:58
在任何情况下,我可以向您保证,在MonoGame中使用xTile加载切片地图是可能的。我这样做是为了我们的一个叫Rock Run的游戏。
诀窍是使用MonoGame依赖项重新编译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将文件作为流读取,因为在安卓设备上,文件存储在独立的存储中,您无法通过典型的文件系统操作找到它们。
如果你关注过the tutorial,其他的一切都应该是不言而喻的。
https://stackoverflow.com/questions/16640261
复制相似问题