LibGDX加载tmx地图时提示找不到.tsx文件问题求助
LibGDX加载Tiled地图找不到.tsx文件解决方案
报错信息:
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: Maps in use\tileset_gutter.tsx (Internal)
1. 修复路径不匹配问题(最高概率解决)
报错中出现的Maps in use\路径前缀是你在Tiled编辑器中首次关联 tileset 时的本地路径,和你assets目录下的实际路径不一致导致加载失败:
- 打开tmx文件所在的assets目录,确认
tileset_gutter.tsx和level1V2.tmx的相对位置:如果两个文件在同一级目录,tmx文件中tsx的source属性应该直接写tileset_gutter.tsx,不要带任何多余的路径前缀,也不要用Windows系统的反斜杠\,统一用正斜杠/作为路径分隔符。 - 更稳妥的操作是直接在Tiled中重新关联:打开
level1V2.tmx,在右侧tileset面板右键对应 tileset,选择「Change source file」,选中你assets目录下的tileset_gutter.tsx,保存tmx后再手动打开tmx文件确认source属性的路径符合要求。
2. 嵌入tileset避免外部依赖
如果不想单独维护tsx文件,可以直接把tileset嵌入tmx:
- 在Tiled中打开tmx,右键对应tileset选择「Embed tileset」,保存后tmx会包含所有tileset配置,LibGDX加载时不会再请求外部tsx文件。
3. 校验资源加载配置
如果路径确认无误还是报错,检查以下配置:
- 确认你的core模块的assets目录已经被项目正确标记为资源根目录,Desktop启动类的
config.setAssetRoot()配置正确。 - 加载时可以传入TmxMapLoader参数明确资源加载规则:
TmxMapLoader.Parameters params = new TmxMapLoader.Parameters(); params.textureMinFilter = Texture.TextureFilter.Linear; params.textureMagFilter = Texture.TextureFilter.Linear; mapLoader = new TmxMapLoader(); map = mapLoader.load("level1V2.tmx", params); renderer = new OrthogonalTiledMapRenderer(map);
内容的提问来源于stack exchange,提问作者Springfrost
相关产品推荐
相关产品推荐

