0

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 プロジェクトに入れるために、(.tmx マップがあるフォルダーから) コピーを作成し、「Poussins-Desktop / assets / maps」という名前の Eclipse プロジェクトに貼り付けました。同じアクション (コピー ペースト) を使用して、「Poussins-Desktop / assets / maps」という名前の同じ Eclipse プロジェクトに .png タイルを指定しました (スクリーンショットで確認できます)。コードでは、次の行がよくわかりません。

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

.tmxへのパスが良いかどうかはわかりませんが、チュートリアルで言われたことを尊重しているようです...

実際、エラーでは、ファイル herbe16.png を読み込めないと言っています。ただし、このファイルは .tmx マップ全体のタイルです。

私はUBUNTU 13.10システム、Eclipse 3.8.1に取り組んでいます

誰かが私を助けてくれることを願っています。私の問題に注意を払ってくれてありがとう。

4

2 に答える 2

0

さて、これが役立つかどうかわかりません..大文字を気にせずにファイルのパスを宣言しただけです(私はwindows7を使用しています)。

ここで、コードをデスクトップで Java アプリケーションとしてテストしたところ、問題なく動作していましたが、エミュレータまたは Android デバイスで起動しようとするとクラッシュしました。

エミュレーターとデバイスの両方が大文字の正確なパスを必要とすることが判明しました。

于 2014-10-07T16:19:51.513 に答える