7

テクスチャを libGDX にロードしようとしていますが、ファイルが見つからないという例外が発生します。

.png ファイルを読み込もうとしているコードは次のとおりです。

//Textures
private Texture tiles;
private TextureRegion grassImage;
private TextureRegion dirtImage;
private TextureRegion stoneImage;

//Entities
private Texture entities;
private TextureRegion playerImage;

public WorldRenderer(World world, boolean debug) {
    this.world = world;
    this.camera = new OrthographicCamera(CAMERA_WIDTH, CAMERA_HEIGHT);
    this.camera.position.set(CAMERA_WIDTH/2f, CAMERA_HEIGHT/2f, 0);
    this.camera.update();
    this.debug = debug;
    spriteBatch = new SpriteBatch();
    loadTextures();
}

public void loadTextures() {
    tiles = new Texture(Gdx.files.internal("tiles.png"));
    grassImage = new TextureRegion(tiles, 0, 0, 32, 32);
    dirtImage = new TextureRegion(tiles, 0, 64, 32, 32);
    stoneImage = new TextureRegion(tiles, 64, 0, 32, 32);

    entities = new Texture(Gdx.files.internal("entities.png"));
    playerImage = new TextureRegion(entities, 0, 0, 32, 32);
}

public void render() {
    spriteBatch.begin();
    drawGrass();
    drawDirt();
    drawStone();
    drawPlayer();
    spriteBatch.end();
    if (debug) {
        drawDebug();
    }
}

エラーメッセージは次のとおりです。

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: tiles.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:175)
    at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
    at com.mr.zen.level.WorldRenderer.loadTextures(WorldRenderer.java:62)
    at com.mr.zen.level.WorldRenderer.<init>(WorldRenderer.java:58)
    at com.mr.zen.screens.GameScreen.show(GameScreen.java:29)
    at com.badlogic.gdx.Game.setScreen(Game.java:62)
    at com.mr.zen.Zen.create(Zen.java:12)
    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: tiles.png (Internal)
    at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:132)
    at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:586)
    at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:220)
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)
    ... 12 more

問題は loadTextures() メソッドに存在します。ファイルが見つかりません

 tiles = new Texture(Gdx.files.internal("tiles.png"));

Android プロジェクト ファイルの assets フォルダーに .png ファイルを配置するようにしました。何が原因なのかわかりません。他のプロジェクトでこれを機能させましたが、今回は何かがうまくいきませんでした。助けてくれてありがとう。

4

7 に答える 7

6

Gradle を使用している場合は、パッケージ エクスプローラーでマウスの左ボタンをクリックします。Aassets -> Gradle -> Refresh All.

それだけです=)

于 2014-04-30T22:51:48.127 に答える
3

Android プロジェクトの assets フォルダーに新しいフォルダーデータを作成し、 Gdx.files.internal("data/tiles.png")を使用してファイルにアクセスします。

tiles = new Texture(Gdx.files.internal("data/tiles.png"));

于 2013-08-18T13:01:42.767 に答える
0

現在のlibgdxバージョンを使用してAndroid Studio 2でこの問題が発生しています。psp (cs6 および/または cs15) で png として保存すると、それを読み取ることができません。io can't read stream のような正確なエラー メッセージを思い出せません。ということで、コーレルペイントで再度保存してみました。同じ問題。次に、Windows に同梱されている単純なペイント ユーティリティを使用します。ダメ。最後に、paint.net をダウンロードしました。現在、私のワークフローには余分なステップが含まれています。psp などで生成されたすべての png、ほとんどすべての png libgdx について不平を言うと、paint.net にロードし、[保存] をクリックすると、準備完了です。

それ自体は実際には解決策ではありませんが、仕事を成し遂げます。

あなたは元気そうに見えますが、これが誰かの役に立てば幸いです。マルク

于 2016-10-08T23:45:31.290 に答える
0

パッケージ エクスプローラーの [更新] または [F5] でマウスの左ボタンをクリックします。

これで私の問題は解決しました。

于 2016-09-14T13:38:43.953 に答える