【发布时间】:2015-12-03 07:45:36
【问题描述】:
我目前从资产文件夹加载我的平铺地图。
TiledMap tileMap = new TmxMapLoader().load("assets/level1.tmx");
但我想做一些像今天一样的东西。 是否可以从字符串加载平铺地图?
字符串将是 .tmx 文件的内容。
【问题讨论】:
-
不,但您可以将数据保存到文件并从中加载。
我目前从资产文件夹加载我的平铺地图。
TiledMap tileMap = new TmxMapLoader().load("assets/level1.tmx");
但我想做一些像今天一样的东西。 是否可以从字符串加载平铺地图?
字符串将是 .tmx 文件的内容。
【问题讨论】:
最简单的方法可能是创建一个包含内容的(临时)FileHandle 并使用它来加载地图。
默认情况下TmxMapLoader 将使用InternalFileHandleResolver。这不起作用,因为您无法在运行时创建内部文件。
这就是为什么您会改为使用ExternalFileHandleResolver 作为地图加载器,创建一个外部文件并将您当天的地图作为字符串写入其中。
String mapOfTheDay = ...;
FileHandle mapOfTheDayFile = Gdx.files.external("mygame/mapoftheday.tmx");
mapOfTheDayFile.writeString(mapOfTheDay, false);
TiledMap tileMap = new TmxMapLoader(new ExternalFileHandleResolver()).load("mygame/mapoftheday.tmx");
【讨论】:
从 TmxLoader 继承和重写方法,我能够从 XML 字符串加载地图:http://pastebin.com/gQHQv6eV
!!但是!!,这非常很糟糕,只加载真正基础的 TMX 文件。它可以继续加载复杂的TMX,但我现在不需要它。
TMX 引用的文件(tilesets...)必须在您的应用工作目录中。
【讨论】: