无法加载平铺地图 (Libgdx)
Unable to load tiled map (Libgdx)
我尝试过使用不同的平铺地图并使用 zlib 压缩类型。我在 android 下的资产文件夹中有 png 文件和 tmx 文件。
如果您需要更多信息,我会回复。任何帮助表示赞赏。谢谢
package com.mm.test1;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
public class TestOne extends ApplicationAdapter {
private TiledMap map;
private OrthogonalTiledMapRenderer renderer;
@Override
public void create () {
map = new TmxMapLoader().load("grass1.tmx");
renderer = new OrthogonalTiledMapRenderer(map);
}
@Override
public void render () {
Gdx.gl.glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
renderer.render();
}
@Override
public void dispose () {
map.dispose();
renderer.dispose();
}
}
这是错误信息:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: Downloads/TilesetGrass/TilesetGrass/overworld_tileset_grass.png
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:149)
at com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java:98)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:96)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:86)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:67)
at com.mm.test1.TestOne.create(TestOne.java:16)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:149)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.run(LwjglApplication.java:126)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: Downloads\TilesetGrass\TilesetGrass\overworld_tileset_grass.png (Internal)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:222)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:146)
... 8 more
你是如何开始你的申请的?这是一个 运行 可用的 jar 文件还是您通过 IDE 运行 它?当您通过 IDE 启动它时,您必须将工作目录设置为 android\assets
.
转到 IDE 的 运行 配置并设置指向 android/assets 文件夹的工作目录。
如果您没有 android 并且您正在为桌面开发,您可以在核心项目中找到资产文件夹。
问题出在 .tsx (TileSet) 文件上。
进入 .tsx 文件并更改:
<image source="Downloads/TilesetGrass/TilesetGrass/overworld_tileset_grass.png" ... />
到
<image source="[relative path to your .png from asset folder]" ... />
通过为您的 TileMap 创建您的 TileSet,您可能选择了仍在下载文件夹中的 .png,因此您的 TileSet 指向错误消息中显示的路径:Downloads/TilesetGrass/TilesetGrass/overworld_tileset_grass.png
。
我尝试过使用不同的平铺地图并使用 zlib 压缩类型。我在 android 下的资产文件夹中有 png 文件和 tmx 文件。
如果您需要更多信息,我会回复。任何帮助表示赞赏。谢谢
package com.mm.test1;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
public class TestOne extends ApplicationAdapter {
private TiledMap map;
private OrthogonalTiledMapRenderer renderer;
@Override
public void create () {
map = new TmxMapLoader().load("grass1.tmx");
renderer = new OrthogonalTiledMapRenderer(map);
}
@Override
public void render () {
Gdx.gl.glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
renderer.render();
}
@Override
public void dispose () {
map.dispose();
renderer.dispose();
}
}
这是错误信息:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: Downloads/TilesetGrass/TilesetGrass/overworld_tileset_grass.png
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:149)
at com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java:98)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:96)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:86)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:67)
at com.mm.test1.TestOne.create(TestOne.java:16)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:149)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.run(LwjglApplication.java:126)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: Downloads\TilesetGrass\TilesetGrass\overworld_tileset_grass.png (Internal)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:222)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:146)
... 8 more
你是如何开始你的申请的?这是一个 运行 可用的 jar 文件还是您通过 IDE 运行 它?当您通过 IDE 启动它时,您必须将工作目录设置为 android\assets
.
转到 IDE 的 运行 配置并设置指向 android/assets 文件夹的工作目录。 如果您没有 android 并且您正在为桌面开发,您可以在核心项目中找到资产文件夹。
问题出在 .tsx (TileSet) 文件上。
进入 .tsx 文件并更改:
<image source="Downloads/TilesetGrass/TilesetGrass/overworld_tileset_grass.png" ... />
到
<image source="[relative path to your .png from asset folder]" ... />
通过为您的 TileMap 创建您的 TileSet,您可能选择了仍在下载文件夹中的 .png,因此您的 TileSet 指向错误消息中显示的路径:Downloads/TilesetGrass/TilesetGrass/overworld_tileset_grass.png
。