【问题标题】:libGDX load tiled map from stringlibGDX 从字符串加载平铺地图
【发布时间】:2015-12-03 07:45:36
【问题描述】:

我目前从资产文件夹加载我的平铺地图。

TiledMap tileMap = new TmxMapLoader().load("assets/level1.tmx");

但我想做一些像今天一样的东西。 是否可以从字符串加载平铺地图?

字符串将是 .tmx 文件的内容。

例如http://pastebin.com/WpV90Hma

【问题讨论】:

  • 不,但您可以将数据保存到文件并从中加载。

标签: java libgdx tiled


【解决方案1】:

最简单的方法可能是创建一个包含内容的(临时)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");

【讨论】:

    【解决方案2】:

    从 TmxLoader 继承和重写方法,我能够从 XML 字符串加载地图:http://pastebin.com/gQHQv6eV

    !!但是!!,这非常很糟糕,只加载真正基础的 TMX 文件。它可以继续加载复杂的TMX,但我现在不需要它。

    TMX 引用的文件(tilesets...)必须在您的应用工作目录中。

    【讨论】:

      猜你喜欢
      • 2019-02-19
      • 2016-01-24
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 2020-08-24
      • 2016-07-08
      • 1970-01-01
      相关资源
      最近更新 更多