LibGDX, GDX.files.internal () Файл не найден - PullRequest
0 голосов
/ 10 ноября 2018

У меня проблема с использованием LibGDX с каталогом ресурсов. На самом деле я создаю папку моего проекта таким образом . Я следую этому уроку , чтобы учиться. (Я работаю на Eclipse) Код, который я использую:

package com.mygdx.game;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion;
import com.badlogic.gdx.utils.Timer;
import com.badlogic.gdx.utils.Timer.Task;

public class MyGdxGame implements ApplicationListener {
    private SpriteBatch batch;
    private TextureAtlas textureAtlas;
    private Sprite sprite;
    private int currentFrame = 1;
    private String currentAtlasKey = new String("0001");

    @Override
    public void create() {        
        batch = new SpriteBatch();
        // THE PROBLEM IS UNDER THIS LINE
        textureAtlas = new TextureAtlas(Gdx.files.internal("spritesheet.atlas"));
        AtlasRegion region = textureAtlas.findRegion("0001");
        sprite = new Sprite(region);
        sprite.setPosition(120, 100);
        sprite.scale(2.5f);
        Timer.schedule(new Task(){
                @Override
                public void run() {
                    currentFrame++;
                    if(currentFrame > 20)
                        currentFrame = 1;

                    // ATTENTION! String.format() doesnt work under GWT for god knows why...
                    currentAtlasKey = String.format("%04d", currentFrame);
                    sprite.setRegion(textureAtlas.findRegion(currentAtlasKey));
                }
            }
            ,0,1/30.0f);
    }

    @Override
    public void dispose() {
        batch.dispose();
        textureAtlas.dispose();
    }

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

        batch.begin();
        sprite.draw(batch);
        batch.end();
    }

    @Override
    public void resize(int width, int height) {
    }

    @Override
    public void pause() {
    }

    @Override
    public void resume() {
    }

(если код трудно читать, я использую точно такой же код, который приведен в учебнике, связанном ниже)

Мой пакетный обозреватель выглядит так: imgur ссылка

И это возвращает меня:

Исключение в потоке "Приложение LWJGL" com.badlogic.gdx.utils.GdxRuntimeException: файл не найден: spritesheet.atlas (Internal) на com.badlogic.gdx.files.FileHandle.read (FileHandle.java:136) на com.badlogic.gdx.graphics.g2d.TextureAtlas $ TextureAtlasData. (TextureAtlas.java:103) на com.badlogic.gdx.graphics.g2d.TextureAtlas. (TextureAtlas.java:231) на com.badlogic.gdx.graphics.g2d.TextureAtlas. (TextureAtlas.java:226) на com.badlogic.gdx.graphics.g2d.TextureAtlas. (TextureAtlas.java:216) в com.mygdx.game.MyGdxGame.create (MyGdxGame.java:23) на com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop (LwjglApplication.java:149) на com.badlogic.gdx.backends.lwjgl.LwjglApplication $ 1.run (LwjglApplication.java:126)

Я попробовал несколько хитростей, таких как Project> Очистить, обновить, закрыть и заново открыть Eclipse и даже пересоздал проект. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Хорошо, я нашел трюк. Для тех, кто сталкивается с той же проблемой (работает в Eclipse, но она практически одинакова независимо от IDE), существует один поток в переполнении стека, уже существующий , который дает дополнительные решения. Мне пришлось настроить «рабочий каталог» (для основного рабочего стола, например). Для этого перейдите на Выполнить> Выполнить настройку> Аргументы и в разделе рабочего каталога есть Default и Other. Отметьте Ящик другого пользователя , и мне пришлось написать $ {workspace_loc: my-gdx-game-core / assets} , но я думаю, что он работает как $ {workspace_loc: [name -of-ваш-ядро-каталог] / активы} . Надеюсь, это помогло.

0 голосов
/ 11 ноября 2018

возможно, вы не связали папку ресурсов, если да,

попробуйте щелкнуть правой кнопкой мыши на my-gdx-game-desktop, в диалоговом окне свойств выберите Java Build Path, нажмите кнопку источника ссылки, затем перейдите к папке ресурсов.

если вы уже установили его, попробуйте readd с этим шагом, перезапустите eclipse, если необходимо

...