我一直在学习用java和libgdx编写游戏。我尝试的任何语言中最讨厌的部分是Level Editor(.TMX,tiles)解析。 libgdx的Github说有一个有用的课程,我一直试图按照说明但我卡住了。
基本上,如果我注释掉以下代码行,应用程序运行正常,但当然不包含任何级别元素。当我在代码中使用此行时,它会在加载应用程序时立即崩溃我的手机:
TiledMap map
public Level(OrthographicCamera camera) {
map = new TmxMapLoader().load("level1.tmx"); /// THIS LINE CRASHES IT
}
我检查过文件'level1.tmx'肯定存在于游戏层次结构Android文件夹内的'assets'文件夹中。
如果你确实需要我的其余代码我很乐意把它放好但是那里有很多与这个问题无关的垃圾。谢谢你的帮助
编辑:我认为可能有一件事是我在Tiled Editor中制作的文件类型。 (即我选择了zlib压缩)其他选项是XML CSV,我认为是gzip
答案 0 :(得分:1)
如果您的错误是"无法加载文件" .... tiles-brown.png"然后转到已存储.tmx地图的窗口中的文件夹。右键单击并在记事本中打开。在那里,您将看到文件顶部使用的每个资产的参考路径。确保资产存在于项目的指定路径中。如果它没有或不同,请将其更改为存储此地图的资产的位置。然后保存并刷新android项目。这应该可以解决问题。
答案 1 :(得分:0)
您不必自己加载纹理。加载器将为您加载所有引用的纹理,但您必须将它们放在资源文件夹中与使用TilEd创建地图时使用的相同位置。由于你没有做到这一点,你得到了例外。
执行此操作的好方法是在div
目录中创建文件夹levels
和文件夹textures
。将.tmx文件放在assets
中,将tileset放在levels
中。现在,当您从TilEd导入tileset时,它将被引用为textures
。要确保这是正确的,您可以检查.tmx文件。不要使用绝对文件路径!