【问题标题】:Tiled game libGDX - couldn't load file (Exception in thread "LWJGL Application")平铺游戏 libGDX - 无法加载文件(线程“LWJGL 应用程序”中的异常)
【发布时间】:2014-05-02 20:40:07
【问题描述】:

我正在学习使用 libGDX 的 java 平铺游戏教程,但遇到以下错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: gaming creation/herbe16.png
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
at com.badlogic.gdx.graphics.Texture.load(Texture.java:142)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:112)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:108)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:119)
at com.badlogic.gdx.maps.tiled.TmxMapLoader.load(TmxMapLoader.java:104)
at com.poussins.screens.Play.show(Play.java:35)
at com.badlogic.gdx.Game.setScreen(Game.java:62)
at com.poussins.Poussins.create(Poussins.java:11)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: gaming creation/herbe16.png (Internal)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:133)
at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:563)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:218)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)
... 12 more

这是我在 Play 类中使​​用的代码:

package com.poussins.screens;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;

public class Play implements Screen{

private TiledMap map;
private OrthogonalTiledMapRenderer renderer;
private OrthographicCamera camera;

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    renderer.setView(camera);
    renderer.render();
}

@Override
public void resize(int width, int height) {
    camera.viewportWidth = width;
    camera.viewportHeight = height;
    camera.update();        
}

@Override
public void show() {
    map = new TmxMapLoader().load("maps/map-Herbe-Goudron.tmx");

    renderer = new OrthogonalTiledMapRenderer(map);

    camera = new OrthographicCamera();
}

@Override
public void hide() {
    dispose();

}

@Override
public void pause() {
    // TODO Auto-generated method stub

}

@Override
public void resume() {
    // TODO Auto-generated method stub

}

@Override
public void dispose() {
    map.dispose();
    renderer.dispose();     
}

}

为了将 .tmx 映射放入 Eclipse 项目,我只是做了一个 Copy(从 .tmx 映射所在的文件夹)并粘贴到名为“Poussins-Desktop/assets/maps”的 Eclipse 项目中。我使用相同的操作(复制粘贴)将 .png 图块提供给名为“Poussins-Desktop / assets / maps”的同一个 Eclipse 项目(可以在屏幕截图中看到)。 在代码中,我不确定以下行:

map = new TmxMapLoader().load("maps/map-Herbe-Goudron.tmx");

因为我不知道.tmx的路径好不好,但似乎尊重教程中所说的......

实际上,在错误中,是说无法加载文件herbe16.png。但这个文件是整个 .tmx 地图中的一个图块。

我正在开发 UBUNTU 13.10 系统,Eclipse 3.8.1

希望有人能帮助我,提前感谢您关注我的问题。

【问题讨论】:

  • 错误信息非常明显。您必须将文件 herbe16.png 放在android/assets/creation/herbe16.png 中。当然,在加载地图时也会加载平铺图片。

标签: java libgdx lwjgl tiled


【解决方案1】:

好的,我不知道这是否对你有帮助.. 我只是声明我的文件的路径,不介意大写字母(我使用的是 windows7)。

现在,当我在桌面上将代码作为 java 应用程序测试时,它运行顺利,但当我尝试在模拟器或 Android 设备上启动它时,它会崩溃。

原来模拟器和设备都需要大写字母的确切路径。

【讨论】:

  • Windows 不区分大小写(在大多数情况下),不像大多数其他操作系统。我想很多人都不知道。
【解决方案2】:

这可能已经解决了,或者 OP 可能已经放弃了,但我在同一个教程中也遇到了这个错误。我解决了我的问题。 OP可能正在使用不同位深度的 .png (就像我的情况一样)。导致错误的 .png 为 64 位深度(您可以通过右键单击 .png -> PROPERTIES -> DETAILS 进行检查)。使用位深度为 32 的 .png 可以使加载工作正常。我使用 Photoshop 创建了我的 .png 图块集,并在创建新文件时将其设置为 8 位(颜色模式旁边)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多