【问题标题】:LibGDX importing TMX filesLibGDX 导入 TMX 文件
【发布时间】:2016-02-13 07:51:25
【问题描述】:

我一直在学习用 java 和 libgdx 编写游戏代码。在我尝试过的任何语言中,我最讨厌的部分是关卡编辑器(.TMX,平铺)解析。 libgdx 的 Github 说有一个有用的课程,我一直在尝试按照说明进行操作,但我卡住了。

基本上,如果我注释掉以下代码行,应用程序运行良好,但当然不包含任何关卡元素。当我在代码中有这行代码时,它会在加载应用程序时立即使我的手机崩溃:

TiledMap map

public Level(OrthographicCamera camera) {
    map = new TmxMapLoader().load("level1.tmx"); /// THIS LINE CRASHES IT
}

我已检查文件“level1.tmx”肯定存在于游戏层次结构的 Android 文件夹内的“资产”文件夹中。

如果您确实需要我的其余代码,我很乐意把它放上去,但是那里有很多与问题无关的垃圾。感谢您的帮助

编辑:我认为可能是我在平铺编辑器中制作的文件类型。 (即,我选择了 zlib 压缩)其他选项是 XML CSV,我认为是 gzip

  • 另一个编辑——我设法在 Android Studio 底部查看了一条错误消息,说无法加载文件“....tiles-brown.png”——我不知道我必须加载这些纹理,这两个无论如何,使用的瓷砖 png 文件也已经在资产文件夹中,但它显示无法加载错误。请帮忙

【问题讨论】:

    标签: java android libgdx tiled tmx


    【解决方案1】:

    如果您的错误是“无法加载文件“....tiles-brown.png”,请转到存储 .tmx 地图的 Windows 中的文件夹。右键单击并在记事本中打开。在那里您将查看文件顶部使用的每个资产的参考路径。确保资产存在于项目中的指定路径中。如果不存在或不同,请将其更改为存储此地图资产的位置。然后保存并刷新android项目。这应该可以解决问题。

    【讨论】:

    • 您好,感谢您的回答,它帮助我解决了这个问题(也结合下面的 noones 回答)。基本上我直接从我的资产文件夹中制作了几个带有资产的 tmx 文件,但是 tmx 的内部表示图像位于; “.../Users/Myname/Documents/Etc/ETc/Etc/Gamename/Assets 等。通过使用 Noones 文件夹约定并制作新的 TMX,它只是说“../textures/tiles-green.png”,它位于里面Assets 文件夹。只是想我会输入这个来帮助以防万一有人遇到和我一样的问题。
    【解决方案2】:

    您不必自己加载纹理。加载器将为您加载所有引用的纹理,但您必须将它们放在您的资产文件夹中,与使用 TilEd 创建地图时使用的位置相同。由于您没有正确执行此操作,因此您会遇到异常。

    执行此操作的一个好方法是在您的assets 目录中创建一个文件夹levels 和一个文件夹textures。将您的 .tmx 文件放在 levels 中,将图块集放在 textures 中。现在,当您从 TilEd 导入图块集时,它将被引用为 ../textures/tileset.png。为确保这是正确的,您可以检查 .tmx 文件。不要使用绝对文件路径!

    【讨论】:

    • 两个答案的结合帮助我解决了这个问题。我已经将答案授予 Noone,因为他更快。非常感谢 George 的帮助,但是关于如何引用文件路径和名称的明确解释是这个答案最有帮助的原因
    猜你喜欢
    • 2014-08-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 2013-05-16
    • 2014-10-03
    • 2019-07-06
    • 2013-08-05
    相关资源
    最近更新 更多